{"_id": "LhzdFWpQWF3JWjPat", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File |f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jbagKy5TrTJZtKjCX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:27:36"} {"_id": "YKCFegBeYDjRSYwQu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "6QPwAciHHjTEPTPa9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:11:25"} {"_id": "vZZNsnj28XFtym47q", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B4u4yX9GQkZdFQTK6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:02:03"} {"_id": "NfphakrpXY3PCzizF", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z2nsG9w9omKX6NsBS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:40"} {"_id": "HRHfEb7YAoCDDtrWQ", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "TmnF2s8jNSbiio6ot", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-10-12 11:20:53"} {"_id": "7Z9LgX3FtB7nJxPJQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tFile 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 10:33:46"} {"_id": "Lo3J6jput6kS4YdKN", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLisnk[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TCrZGhfcLGkYGG8CJ", "msg": "The name \"isLisnk\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 13:49:27"} {"_id": "4NScAgH6tE2n7BPRw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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": "DRZAaDTTTB3NdFrFa", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:11:05"} {"_id": "hdLAqyyX2PXw7cKQB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:48"} {"_id": "7ecBMPMi6nvQmiA6X", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:36:18"} {"_id": "WX9vg3de5EaQfLZxN", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t/all f : Protected | f not in Trash*/\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "3qq8tenSYKrbk9dMc", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:07:09"} {"_id": "B9dWm5ZvaNWjJLzWh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "obaXeGTtfe9Yudd6x", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:27:56"} {"_id": "doLdbonPScXzPPTiR", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d9o6Zm4pencAGsjLc", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:42:51"} {"_id": "FwoM6ChxJLZpfpLxT", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f1->f2 : link | f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2CPMYGzvMyMQ8AWBJ", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:44:46"} {"_id": "w6yH2GHwFo7FKCjhT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3uPvH3Wmz7ELKfn7W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:05:20"} {"_id": "fAPpodk9iwZN4rESD", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "yEr9HWDFNRtkFiuGQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:17:06"} {"_id": "eTLoRXBBqLWJWczYF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies x=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LLATuT3ABrHpHELrK", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:50:34"} {"_id": "L478GF8fKDJmJEAXy", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File | f.link implies f not in Trash \n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "RhRQQvWKgFHD9aisn", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:57:39"} {"_id": "qxHt4WS5Fbfj5XT95", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall y,z : File | isLinked[y] implies not isLinked[z]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iEMpeQ8KgiNAGCf4d", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:07:11"} {"_id": "PEv84uuhrPKZNQyrx", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x -> y in link implies y -> z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4XCAbLwiYw6fvQioA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:33"} {"_id": "K7trR3MhL9GxsorzE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-25 21:08:55"} {"_id": "WAEhmpvWMYDDmnzJR", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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\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": "We44LmnCfHe9Hrd77", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-2 14:36:32"} {"_id": "hxZBSEuRwo5DDWaT9", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:14"} {"_id": "CgiXMt4i8kifAuf3v", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TSu2F387fJhm2yqsn", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:32:43"} {"_id": "Mu5F5psdQYqfKdtfZ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\t\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": "jjz7HB4uaafAoJPek", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:54:20"} {"_id": "acgCmw5ZCtf749Hf4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "84NAncZNxcL8MMpD7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:10:17"} {"_id": "xox8Xxk78GMMfMCEo", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ivEAkjtAxzfxs4tsj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:47:25"} {"_id": "hkNMQYAHSKdK4yniy", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |no f.link in 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": "CRBRSqQY9jrakYdfj", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:39:18"} {"_id": "xtuaboqtPJ6Qg6pyd", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y : File | x->y in link implies all z : File | y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "rgJ5CCNEqNTE7MJs8", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 603.9921875, "y": 132.66666666666666}, "File1": {"x": 603.9921875, "y": 265.3333333333333}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}, {"border": "inherit", "type": "Protected:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}, {"color": "inherit", "type": "Protected:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}, {"shape": "inherit", "type": "Protected:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "Protected:File", "visibility": false}]}}, "time": "2019-9-26 07:36:55"} {"_id": "c4P6JbXkvHzMoJzSM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p3yak2Bhn9TSh3mqX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:10:35"} {"_id": "n5PNajGBmBBR38a8B", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : Files | f in Trash implies f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SZ8JbTccirHvCEPGE", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:33:10"} {"_id": "kAy2sb4Apny9fX39J", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | f->g in link in Trash implies g in Trash\n}", "derivationOf": "tdgH26XwvpEiPnRBP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:46:22"} {"_id": "ccMJAhGspd5gMWyAH", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f->f2 in link or f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pvhLkh3qYoPCCBSEk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:56:24"} {"_id": "AQYJbX2b5asLM9ydv", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\tall f:File |no f.link in 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": "hkNMQYAHSKdK4yniy", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:39:23"} {"_id": "W2LWRL7ujrrtksJtE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wvyAbwtjWNvbxabGF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:14:09"} {"_id": "on8MEX9kGJPMchgTq", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | f not 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": "ivAsWJrLWw2N6MifC", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 17:15:15"} {"_id": "9NcmN9cnLvkgqT7xw", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "cSJDaRfb4CWtXSc9a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:11:19"} {"_id": "YBxEjtdAJnJfY5p4N", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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": "MCdSq5ioJRW7RQB4P", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:35:25"} {"_id": "jjz7HB4uaafAoJPek", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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": "msW7BqjPR59bbfLEm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:48:01"} {"_id": "QS7gpqYv2W8vD2iTi", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | f in Trash \t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | \n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "j8cnZnqfGMkyZoWDp", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:43:42"} {"_id": "GsEXRkmsx7jpZzr6Y", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "wAnBbNqRjJJtYWdaK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:56"} {"_id": "MiY4pKgsDP3XNKd22", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "6ND8NCXRioL7zHAQd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:49:42"} {"_id": "PGAfse3iE9Joda9LT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "4DNLafHqCeqKE3XMN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 19:07:39"} {"_id": "wAnBbNqRjJJtYWdaK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "4njAPDWSSZzeEMmLN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:30:50"} {"_id": "ogBc9DXtM9P9WA8fk", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8ddPgaw3s3pDeh3y5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:55"} {"_id": "6p6btkJ2rtFyZRZd9", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hwPKmzPtxz7JpL9ov", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:43"} {"_id": "Z2oy5c3BMp2ZLX3Wa", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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": "3vpQPDLorEdg7AMmX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:22:38"} {"_id": "zLmM9ruNFJmiMata5", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "p6q3e7TqwagJzTj9s", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:15:20"} {"_id": "j8zht227Z7iePbaJe", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "PYkhpavhW7tNDbu3e", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:34:09"} {"_id": "NM3rP6cX2ypCbC9Qq", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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": "ET852mQddp8EBYvZo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:15:52"} {"_id": "EXHAXb5RMMgTew6r5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:22:03"} {"_id": "BnZgCspmGFrNbTPpw", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 -> f2 in 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\t\n}", "derivationOf": "bM5xNcYykpy2F64MC", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:33:47"} {"_id": "C5Mna3xG6WvnwWYzj", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n\ncheck aux1 iff aux2 for 10\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "73qKMXmqENmdX7Y2t", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:29"} {"_id": "kqqeEM688nRovqXKD", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in File\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3JLNKvn7dGbfHfRFq", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:33"} {"_id": "DtQdoe4oKr4yG9b7t", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "2ktHi3SbNz775WmR2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:09:22"} {"_id": "5Kz6Fpo4F7wLSzRRy", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eZgJx2qyiG2aSciTM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:39"} {"_id": "EP8ATXx7kREWmPGdT", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | (f1 -> f2) in 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": "MKCuiR2BN43BpmQzQ", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:45:41"} {"_id": "4qxTkeowaLdAdQtNa", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | no f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rfJ5SeWsT3QhHYmPB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-4 12:25:20"} {"_id": "pvhLkh3qYoPCCBSEk", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xSztZ9dTXTSjDCn9t", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:55:34"} {"_id": "WCR5D69gK742b7gav", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \n \t\n\tno Trash\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n \t\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n \n \t\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n \n \t\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n \t\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \n \t\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n \t\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n \n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \n \t\n\tTrash.link in Trash\n}", "derivationOf": "t54kMoXxpKPNW9rsR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 09:24:15"} {"_id": "Foa2vhwhHRMjbMWrH", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xg9abqxPzin96mBwq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:25:22"} {"_id": "rAWgEdrD3aQsAjXqB", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g :File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "rFjRdq6ACD3FA8xxu", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 364.16668701171875, "y": 199.1666717529297}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-1-7 19:52:55"} {"_id": "PEhku4TvHst6smsmt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "NcQy3hSsc6WhYqQNi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:30"} {"_id": "5W9JcGPsSqWCGCP2z", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\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": "sDLK7uBCbgZon3znd", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:29:58"} {"_id": "gGFq2ajSPRiPw3JyT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C6ty6Jg2fPKmvS5rw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:52:37"} {"_id": "Laiizqmp24izEZJXu", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "NbXiWrPLrMtM3ekPr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:32:42"} {"_id": "7u3FiXhxKSSaBbeju", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "Kh9k7hivd6qMRoL6B", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:56:12"} {"_id": "znvRQmzEuEgz89yo4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YRGG2AZb544rGzkoX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:26:35"} {"_id": "JmvRSSEPBwr93fGL9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\tFile.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": "57wWW7DegzYFnhoMX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-1 16:12:58"} {"_id": "k52oFXT9gsMKGF8jg", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash\n}", "derivationOf": "9LxBxPxEru6S5Wh3h", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:50:01"} {"_id": "RCJ8aC2WjvtwxfhwM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.link in File\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\n}", "derivationOf": "pt4FWkTqjoo9ohJ9K", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 11:45:07"} {"_id": "umKvieynEaJm7JM59", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QriFt55sQ2YrmQXbN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:13:55"} {"_id": "2fF3XFzdr4WutnPxq", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f :File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dgJ74koPp2N57D5iB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-30 15:35:57"} {"_id": "hmZjDnmWQ82jTpMrP", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "KScKKTqNQWGXC3g7D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:10:28"} {"_id": "6QPwAciHHjTEPTPa9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\t\n ", "derivationOf": "sSK95R33v7yWsbbHq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:10:44"} {"_id": "WywDbjkcRs8ByK6ko", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h,k : File | ((f->g in link) and (h->k in link)) implies (f->h not in link) \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EbBXg7fB3FfbBaGNe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:18"} {"_id": "SeuYxh2mEq8e629oE", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ANwMHY4sjAKzrWkeo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:29:51"} {"_id": "ygTHwdzvFPWycm9jf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no Trash.link\n\n}\n\n/* There are no links. */\npred inv8 {\n no link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n no link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j8MkDwL6RPr2FL3au", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:59:31"} {"_id": "3NgWg6wtq3NCwSZoh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xi28mqS9kdgNhsJ5a", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:51:03"} {"_id": "rDyrcyKNDTzEBmmN8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | some g,h : File | f->g in link implies f->h not in 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": "R9wAYEGWv8tXmTsoT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:55:18"} {"_id": "9Kn5fpMpquKevmKDn", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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": "vLdLkQG3obEDe9onP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:03:07"} {"_id": "wdoaxriWmgLEfcihj", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 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": "qnQ5EbkWqtMChWAGj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:15:50"} {"_id": "s4jyk2YNu5ALsu4Fs", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HTxZB945agJrBZgWT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:21:45"} {"_id": "bXqAFFwaby83ztRZs", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "TXfC7GzuK8LswhZX2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:15:44"} {"_id": "SgDParfyTQBE94C4b", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q9558rtNJXZphbBEW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:47:34"} {"_id": "cGsHWPnBh4eah87Ey", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ns334t9ChMdhuihnR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:25:53"} {"_id": "AmztgwhwQmjT4YjqB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "6DKtAmPwEbYfuKbez", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:05:17"} {"_id": "x3xvp4Q6BLHNSZHBH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jKncqPdTfjKXwA8zu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:37"} {"_id": "wrXsxquTfMrT6YBC2", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "9ZFASTMdXLnZogFDD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:38"} {"_id": "sB4rSrsyDKksb5GnD", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "5Xy47upgxZTsAvzt4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:22:39"} {"_id": "WnLLrGfwgpMmWK4W2", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "88po5Ly3NjywEMnkk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:17:52"} {"_id": "x3TvuGdG48shXopEj", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GdAWW64HsnKzLC7R2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 07:35:15"} {"_id": "PBvQ2EsGQZJHebRpS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "DuR37BgbQZ5p7N7Fq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:35:31"} {"_id": "K74AF4hmHTervn3se", "cmd_i": 9, "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x in Trash | all y : File | x->y in link \n}", "derivationOf": "DyLk6aJLvewhZW6WP", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:46:09"} {"_id": "ANNSvGqyYHewvzm6G", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one 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": "xwAmjXMg2TXXoKo4S", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:50:04"} {"_id": "yBfuXniLntkfDMyBu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "4AyYf4KJX7rpBeuZ5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:47:50"} {"_id": "JAGZhJR5yxtsSrjgc", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\tnot (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uotMeQpX3EohHZvWM", "msg": "This expression failed to be typechecked line 50, column 2, filename=/tmp/alloy_heredoc14325766157271721118.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:36:09"} {"_id": "YjQXBCujAybNjMrhN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n some f1,f2,f3:File | (f1->f2 in link and f1->f3 in link) implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WiPd8AJFxpuJuz7zr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:38:46"} {"_id": "Rx9szgXSTBNsmYjxG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FcJYSPor27fwpLLxL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:25"} {"_id": "vperXpfTuSPT7FhiW", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in and x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zLWfB2ogtzaprFqP6", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:42:26"} {"_id": "NRZX5wfjdEaTGegXd", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uGTG8QuasuznfZvJ4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:54"} {"_id": "57wWW7DegzYFnhoMX", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "Xfwuw8W9MQtsCmkWw", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-1 16:12:43"} {"_id": "j8n7yA8nCiuY3hDiA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f in Trash\n\n}\n\npred isLink [f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tip4B2kA2vXLS7t9e", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:30"} {"_id": "ucCAfiSWyYXWZqTJj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "bEd5FQzc5SZKpNNhH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:38:24"} {"_id": "cDyyodRjyG4icHqjy", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "zPtaEhHXv7oMeFmm7", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:46:39"} {"_id": "bd3ifs6fBgZ4dCYyf", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RvMQajTtwFoRiEZxR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:33"} {"_id": "Nxj53zgwQensicgFJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "Ev5TouZPwRw7rKE2e", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:17:44"} {"_id": "tKjsn7FDKWKhSTniW", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "GE6CtwKt5b4WSDujZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:46:55"} {"_id": "cCwtTsFcHqJHvMMCZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "t2628g2k5iiuyN7Sb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:56:03"} {"_id": "u5YDSpJfEc2F5jscY", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall g,x:File | f in Trash and \n}", "derivationOf": "azmWfPPrSuoTfjWPH", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:14:09"} {"_id": "wLBZ7r7R5ZE94zSfa", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "KLWAy4darWHEP3TEs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:16:04"} {"_id": "KLWAy4darWHEP3TEs", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "NPfstedmoXSpHbw6Z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:15:54"} {"_id": "DRZAaDTTTB3NdFrFa", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \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}\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": "GQXnpojueQwe9Wkjq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:10:46"} {"_id": "YAoafBF7Z52Ch8Xa8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "yT79kuAvrW9yRz7rL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:31:51"} {"_id": "rynvf5M2jEaRwJ5vS", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in l.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": "t3n5GzrEDFSRipAqS", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:12:38"} {"_id": "7ECxzurZKTsdm9g6d", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tno link.Trash\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7pudG3xqPFp2hhp78", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:55:24"} {"_id": "ZHfFkQvWroPYgMakQ", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f :File,l:link | l in Trash\n\n}", "derivationOf": "Qqo2Gc7aTEK6y56Rs", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:18"} {"_id": "SXKbqFTP3TkZtHXZJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in 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": "gtfWNieQ8T3vRhRmp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:58"} {"_id": "ANwMHY4sjAKzrWkeo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xqn4Dp7LogMtmDhMu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:29:12"} {"_id": "FzpB7QRzf2NTsTrLw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\npred isLink[f : File]{\n\tsome y : File | f->y in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "8euNN7HZnuY2LSCBW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:58:14"} {"_id": "PD4zotYE2ZecHC6sP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "apYAsAnrihW2MS5m6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:54:36"} {"_id": "kJWovJsbWP6AByiLw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "hnuGxZXSspEb6XpBi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:06:14"} {"_id": "x8LHWiKmCuLuXFjPb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wujhPbD9K4NEzqNRT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:39"} {"_id": "PxJNezDvS8ED4J6nM", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "evhGLc8pmSMKQfZtJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:06:19"} {"_id": "uRHCcjKpdb69xAG7y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XPzTTntMuQk4tqbPp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:54:30"} {"_id": "ZoomzeDbjSRcZTMf8", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "juNhnHAATiBGhGMTa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:50:08"} {"_id": "SShPohxfN5KChNRXv", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "JqDGZJsBQewEmDLtc", "original": "sDLK7uBCbgZon3znd", "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": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-12 11:21:05"} {"_id": "ivAsWJrLWw2N6MifC", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "txu273Ldxp5Sorih5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:14:44"} {"_id": "DdsNnbgZAutvbdfu8", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SudghTt2e2MxfeD8v", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:33:35"} {"_id": "2DRghxAg35xPdh2tD", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z implies y=z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NMYXPJetQ59X6bWYR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:22"} {"_id": "X39DuN5Pn339yhGHx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "wwpgDQq48BitySKYa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:35"} {"_id": "JrJikHo3Mgw5fywan", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | (f->g in link) and in Trash implies g in Trash\n}", "derivationOf": "ARbdjYMAYYWQ8pefY", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:08:15"} {"_id": "jc5hngmhN3swhToMs", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | ((f1 -> f3 in link and f2 -> f3) in link) implies f1 = f2\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\n}", "derivationOf": "NTBA33wPw3qxG9cBe", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:25:45"} {"_id": "Ew4EjdJ4gXhfjHhtT", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XyvP8QctFXSsHNRvm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:22"} {"_id": "mHAfPLHoQ4tL7bGWw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jpTj7Z2FznmYiyJqw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:38:05"} {"_id": "We44LmnCfHe9Hrd77", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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": "LBdNqPgebc3uGeKes", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:36:13"} {"_id": "oSdka3hwMxpNtkt4c", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "Mr7KngN8DKGbq2XFS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:42:21"} {"_id": "NjhNpawodP2j4SeCS", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink in Trash implies File.*link in Trash\n}", "derivationOf": "n9hqBGC9fjv8vdnyg", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:21:12"} {"_id": "rqwNFPzpPqi3AwDyj", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies ((x not in Trash) and (y not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xbEbK9AwqihzgEQv3", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:50:30"} {"_id": "WKQvbYZxSTLyXfGQD", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash | all f:File | t->f in link implies f in Trash\n}", "derivationOf": "xCAvZZjGNpGdyuEf6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:05:12"} {"_id": "ZTdHmSQoJt6ggESKj", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 -> empty\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": "sDLK7uBCbgZon3znd", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:10:10"} {"_id": "yCa3uy8wmevSC8F2W", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g in link implies g->h not in link \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | x->y in link and x- in Trash implies y in trash\n}", "derivationOf": "HWvSxcsrDb5XvYCFn", "msg": "There are 23 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ disj fun iden int none pred seq sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:17:32"} {"_id": "z7GJJB8fXyvqinuZS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\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": "qpS32XpuSZGiKgEec", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:47"} {"_id": "M6jZSqhPENu2AeNCb", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "6g4PQ8ZR7b59ctZT2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 14:56:35"} {"_id": "e86KZBGMH4JhsfEru", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 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": "bXbPDCXamKtecy8YK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:43:33"} {"_id": "GSrseYpsDBNJit9mQ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x -> y in link implies y -> z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x -> y in link and y in Trash implies x in Trash\n}", "derivationOf": "BpCxXucywQdt9BgkT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:35:12"} {"_id": "GE6CtwKt5b4WSDujZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "NWyTYXh7CSRKCDzW7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:42:03"} {"_id": "LweuJ8ue5Xg4BvpJ2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NoNR9aGD6CN4N7QXj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:46:36"} {"_id": "SnLnKGB8icioyCfGs", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:24:27"} {"_id": "eic2hAG6dHBCJRdpL", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PjWCNFYjkL5yKEgJ2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:54:46"} {"_id": "uGTG8QuasuznfZvJ4", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WiXGaz2sKL3TkSD9A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:28"} {"_id": "AfjnjYB5LTNoeXCys", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\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": "acgCmw5ZCtf749Hf4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:10:23"} {"_id": "898vvwGkarfPZtkCz", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash \n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "XPh9ZDFMe8iBtS3jW", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:55:35"} {"_id": "FcRLc68wbHCwc5hCC", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jdWSKN7TRr3CmDW2Y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:01:48"} {"_id": "Qqo2Gc7aTEK6y56Rs", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f :File,l:link | f.l in Trash implies l in Trash\n\n}", "derivationOf": "KEXvzmkvosGWE6HYg", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:05:51"} {"_id": "ndiXisWNLXDLWnkmw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AEy7xfNzRFqAjGcKF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:03:09"} {"_id": "NMYXPJetQ59X6bWYR", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in Link and x->z implies y=z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dLmQjdHeAR9JgXdYS", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:11"} {"_id": "6QL9s298fc4ceAQry", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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": "ubPJoujJinqnqEywt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:02:24"} {"_id": "ozjc4tPSpBiPx5abN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "CAKbS2CR7SChR8cXy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:14:08"} {"_id": "YxGtpN5hi6E8g9Dvb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | 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": "irLr4ZddYcd45qrSd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:11:38"} {"_id": "wkeaL9Bnnjzygj7bj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\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 all t:Trash,f:File | t->f in link implies f in Trash \n\n}", "derivationOf": "RvbXg3JTebrZGP5hB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:17:08"} {"_id": "XkFt9frzACXTjHvZx", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "w2pHmhwe3RDigGdSe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:52:02"} {"_id": "GQp2pjEWx9PthXD8j", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JTsiFu6geY2nQmR6B", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:36:24"} {"_id": "3PZRjHSpQGYcCznpH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "gKYvvAXC8Ngh5zmF2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:09"} {"_id": "FrBaMpLG4R4Pq6ewC", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tFiles \\ 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": "vceuY7hENtGQBcsPX", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:35:17"} {"_id": "Gp72zy2o2eKdHq7jx", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "b3Cjuhue5G2q7s6Cd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-21 16:30:36"} {"_id": "gmHjw8ci3ZPoKBZCT", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "ngfeGpBQ2jJuvKBMg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:35:18"} {"_id": "YGKHQJ5gXjzHKJQcX", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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 \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": "LvSLGiAgYfp8qurgQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:11:51"} {"_id": "zyqRzfJxYxCEyDRhm", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all p:Protected | all t:Trash | p!=t\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | (f not in Protected) implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MqGToSzw4SJyw4exY", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}]}}, "time": "2019-10-1 21:46:13"} {"_id": "QEvDSEom3BbdxiG8Q", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f in Protected or 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": "LhzdFWpQWF3JWjPat", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:27:58"} {"_id": "87JY5XhnjqHD9vkR7", "cmd_i": 6, "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ktou9fvYNp7dhRKJx", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:40:56"} {"_id": "E3cBHn5FeLgsiPztm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "gejTX2iomaoutxzQp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:06:42"} {"_id": "wHWNaCXYAownSZa5H", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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": "P7pf22QunvGzzEw65", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:06:40"} {"_id": "8NEG7DmNu4b4noXba", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: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": "MG7SNM4bEcbkme24N", "msg": "The name \"h\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:38"} {"_id": "hu2scbdzwHTfnmZFL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MwyGL7JWGxyCGBru3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:48:55"} {"_id": "z2aLKrgLu3mDMqNxr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hxZBSEuRwo5DDWaT9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:47"} {"_id": "gjduhkKZ5vP27Q5N4", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all p:Protected | all t:Trash | p!=t\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9qTvaYbeDJ6xL4KkW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 21:43:26"} {"_id": "tp7dA8NRDmDqtrzwk", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall l : link | l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "XQisZqRtBqAKGjfLF", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:49:31"} {"_id": "4bFv8KJYzRkT98amW", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "EdjbDceCcgEhJeuYY", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:15:00"} {"_id": "j59MMHESmPmctxfxL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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": "8FNceER43dzPvT4fB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:43:05"} {"_id": "TEyC4HoJ7TbRpqaCB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:32:55"} {"_id": "TXfC7GzuK8LswhZX2", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | is_link[f1] and is_link[f2] implies f1->f2 not in link\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "AMwtnQZmi6rqzbvjz", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}]}, "nodePositions": {"File0": {"x": 438.83831787109375, "y": 265.50726318359375}, "File1": {"x": 438.83831787109375, "y": 132.75363159179688}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:10:41"} {"_id": "6qeyGPgAiPSx4JJP4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PGzFcJ2fMrujmdeSu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:18:01"} {"_id": "gZSTyAaj3SL938qqm", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n some g:File | f->g in link\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FvEMN5gocSTXv4na5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:55:33"} {"_id": "aEWZhN9vi4EHfXRJk", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | f->g in link implies g in Trash\n}", "derivationOf": "bEdk8sBn6TBxccwdX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 16:48:31"} {"_id": "af6hFQQeFqrbDEw7s", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "5tyQQ7jvEmtjpyfDg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:31:07"} {"_id": "maizPvm7NKbwMLWiH", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "H4Fjv4H2qQ55GiZgG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:10:08"} {"_id": "Yrbpvwgijtp4yGb8h", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MCSxs82rmRvxjjdTK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:13"} {"_id": "i6gSRkm7WYJzAJTFv", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f:>link in Trash \n}", "derivationOf": "cdZWS87wWc5xStqnT", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:49:14"} {"_id": "7RGdDP3XLuAnszM5u", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QNRgmzKPjENdeuKtq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:01:56"} {"_id": "wujhPbD9K4NEzqNRT", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z implies y=z)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "shJGKXkN4CBoHaRTC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:50:26"} {"_id": "LkFXN3JG8RSofLx4i", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | (f in link and link in Trash) implies f in Trash\n}", "derivationOf": "Gwyk2gSG8kTQ9TpsE", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:38:12"} {"_id": "aqfvTx4ehygP5kpBg", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\t\n}", "derivationOf": "PPKRokFohRDkytrcx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:38:01"} {"_id": "6DKtAmPwEbYfuKbez", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "jGJfZSd9qasP7MxbS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:05:05"} {"_id": "eZgJx2qyiG2aSciTM", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SujZ2bEkqw72QHPGw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:03"} {"_id": "6TRjk9D2aW8uJXLdY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:05:40"} {"_id": "6ypLJuErQQnSWAwqW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RBge9DDRDLo4qosbE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:31:26"} {"_id": "xi28mqS9kdgNhsJ5a", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dsrtBJjXmpvYz3tFJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:59"} {"_id": "YndNnaigedyGcw9pR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DRyFEDuzvCNvC4Atm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:43"} {"_id": "GSLQKJppdQDbREhhW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "odzABvzbKR2nvApTF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:01:22"} {"_id": "nwzp6nH4xw65qFuqL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.^link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "GADiKPhroB7oSzHeG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:51:21"} {"_id": "sacnyrEEKoFwZwFBy", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "gH9hJHG8eu46oQ6eh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:20:41"} {"_id": "coC3mJMEFoFsusJ4A", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "39JPxYbXxT9DG98rx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:15:20"} {"_id": "7YbFZfEpswgeF3yYD", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y implies x in link and y in link\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bosG7S4KDgwYoxNmq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:47:55"} {"_id": "66uKfawcDaN6cFsyk", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dgsYuWvGL3Nt47uBm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:43:07"} {"_id": "jMsmtCLdq8Ljbh8Jv", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y link and <->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link and (f,g) not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wKbEeBBMKx2qAipEv", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:02"} {"_id": "CSe9D5HskDiyHQoH5", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f in Trash and f not 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": "uy258bLfvHH8crkgo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:26"} {"_id": "sXwbWtEqPS5q7JxRv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "cCwtTsFcHqJHvMMCZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:01"} {"_id": "Xd8PrDwA2EmqWpmLY", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mPL9cWDZ7yLugGbjY", "msg": "This expression failed to be typechecked line 73, column 15, filename=/tmp/alloy_heredoc9062863549560281446.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 10:45:35"} {"_id": "rzbNoTzZfaheLgDdq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "nqiviFcGL5AyQAZ4v", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:46:50"} {"_id": "Bs48wxn8bMiosGMof", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x 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": "xndB3HuXdL69XGYfF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:21:05"} {"_id": "zPuspXu5kQCaHmbBW", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link implies h->g not in 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": "Y28nKKdtuZEGjzQ4W", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 09:04:39"} {"_id": "jmnJe4xcZQdqztKW5", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "ZWgg942ABo4QfJ3Nf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:59:05"} {"_id": "PtRhDy9ZGmR8vhE4a", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:56:37"} {"_id": "eAtB9ynP9FzpDH3zq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "3g7yLE37fxqHxvA6q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:55:32"} {"_id": "C6ty6Jg2fPKmvS5rw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8Cxoi55n9sitWYsR3", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:52:17"} {"_id": "Bp5FhiReaf3YD5DpE", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno f:File | link.f 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": "WKv3AouZNfh5x4kCW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-30 18:08:50"} {"_id": "gGhrwTXg7xTtt5PoQ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "GXEGJ42ixpNeaWgQ2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:07:37"} {"_id": "rurQLDtDyDAb2jFdf", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z7GJJB8fXyvqinuZS", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:45:38"} {"_id": "9k5LZMAcjq3n76Ywu", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1,f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "LH9BNesyrkzGFQuAd", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:23:41"} {"_id": "Z2EX6ifkzLTrPTcYX", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "pW83dYXWkQW2mQZA6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:38:32"} {"_id": "QR6nMyGuD2kJPFk5z", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "r4pvaSLCQDGLNjxhh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:08:38"} {"_id": "gtKqG3gRyEmnaz45y", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "pehYoSyQQna65RiE5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:30:15"} {"_id": "eoBod7TpChabe5Lwr", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck (aux1 iff aux2) for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mumgp3MtJvAFaxqjt", "msg": "There are 4 possible tokens that can appear here:\nNAME seq this {", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:45:15"} {"_id": "6sxYftczahE8CByfM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "neJT3d3B6FHvw6swi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:32:58"} {"_id": "xYjo3ymiBafyCuudq", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and y not in Trash and x not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jRHZbyyrYdcjDo2aM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:39:03"} {"_id": "pPTpHNXXAYNRjfJBp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dYbHtw5oM3KDkDhLz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:32:41"} {"_id": "TE83do86MPK2LXMyM", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not 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": "ygLQZPvw8HhaPSLM6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:19:26"} {"_id": "wb78HjHSAtqGya2ed", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f: Files | no f.link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ashTcJjtGfJJJtGJa", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:50:14"} {"_id": "SuaX7TcQ7PZ42CJj5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\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": "oMzLjcAqn6eJEe6k4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:35:40"} {"_id": "KxMarMJfsoC2yQbsf", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 not in Trash and f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "9k5LZMAcjq3n76Ywu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:23:59"} {"_id": "HshrBqp7bQMY4dee8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\n", "derivationOf": "RbCBjxGehDn6kMXy7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:08:31"} {"_id": "rSZrCYb5nWAbadLd6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ygvZY8qC5KAdG6kMz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:30:50"} {"_id": "hkv2xmkZP8wG9iWSH", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 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": "hCZYm6cPmp36Aj9dW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:03:57"} {"_id": "pkMniip2jP5xmH4nd", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "6Fz3G6Hr9fZ6tGG7P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 16:19:44"} {"_id": "2dpZWDF5dMYN3yZij", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7u3FiXhxKSSaBbeju", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:56:21"} {"_id": "LBdNqPgebc3uGeKes", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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": "gmHjw8ci3ZPoKBZCT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:35:36"} {"_id": "d9o6Zm4pencAGsjLc", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f:>link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "evcnikAuRCDYgg92F", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:42:44"} {"_id": "ubPJoujJinqnqEywt", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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": "vZZNsnj28XFtym47q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:02:11"} {"_id": "YQFMWy7MbbuFau6dS", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "WX9vg3de5EaQfLZxN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:07:17"} {"_id": "jjRbxq7LR6xsRzp9D", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DzDmfazLbggjNzZCZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:15:14"} {"_id": "BKdsrR5aTqRmfX85N", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n\ncheck {aux1 iff aux2} for 100\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "kvSkcctTsjkdAXHM3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:04"} {"_id": "LPTgYvE7j7nDbg3fr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | isLink[x] implies x not in Trash\n}\n\npred isLink[f1 : File]{\n\tsome f2 : File | f1->f2 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "FzpB7QRzf2NTsTrLw", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:21"} {"_id": "6wieucXYBW8c5AX8L", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "xCjo3AL2pKTG696Ca", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:49:59"} {"_id": "rRcviNuNjneC2i4yM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "EPtgDZWGqbM7DHujk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:12:33"} {"_id": "nqiviFcGL5AyQAZ4v", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "borpDdB6wmrCqGjet", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:46:28"} {"_id": "8LfTnwMt9MT3tux4A", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SPPTQkKpmfZ4P6Mpz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:51:10"} {"_id": "KasmXeQwaicGMdtkw", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "wuyjkz95zkpZMBpaE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:37:02"} {"_id": "cGPQRRdQBJvxYehQc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 09:44:11"} {"_id": "j8cnZnqfGMkyZoWDp", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1 : File | f1 in Trash \t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | \n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "uLPBqpvQwij3LpDKj", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:43:29"} {"_id": "XyvP8QctFXSsHNRvm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9GArKhggXmexAuvBZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:38"} {"_id": "C6ctEJhoY6NZevdPd", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "mQemZdcNJu3g46QJ6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:08:48"} {"_id": "hk98Ea53aHen8f9bk", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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": "6hTDG8aza69pXrp6L", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:12:44"} {"_id": "QK9ckxFKChiQ5dDBJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "ZFcTjZGLc4286upef", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:18"} {"_id": "hSuT8kZYQaCBn5vxg", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in 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\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MzvaGoyiLZgjxaWSp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:40"} {"_id": "sRyqQY8GqiNBhmCJY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "HEcgyG9AMJsSnSrrk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:06:37"} {"_id": "PL9EY4GT8yqpBEniX", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "qnK6oBzEpjm7uvoY3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:35:51"} {"_id": "a6QsM2aFLWZur3Bus", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GfnLs9wcb2YL4cyF4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:26"} {"_id": "YFNfJovSzktev4ivJ", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall l:link | l not in Trash\n\n}", "derivationOf": "HbYm72KNwpnh5eCrh", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:33"} {"_id": "nRcfmuqeof5a46fed", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | (f1 -> f2 and f1 -> f3) in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "LdwNL86R6q3errq6E", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:27:03"} {"_id": "xHdBrNManEFtv58tf", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies (f and g not in Trash) \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "m3zmDoY5QBDDFqQkC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:48"} {"_id": "ARbdjYMAYYWQ8pefY", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | (f->g in link) in Trash implies g in Trash\n}", "derivationOf": "eFSy5CCi74rEvfRxC", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:08:03"} {"_id": "TotAFQwwYa2D4gebr", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | \n}", "derivationOf": "HwzFkvC3wf8v9vn8y", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:59:42"} {"_id": "GADiKPhroB7oSzHeG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "k52oFXT9gsMKGF8jg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:50:12"} {"_id": "jYBYcEoGP3zCEu3Rf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n\t\n\tall f1,f2 : File | is_link[f1] and is_link[f2] implies f1->f2 not in link\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "59YSG2aDzpHoNSwTF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:00"} {"_id": "gxno6LAd85QNiMT8M", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3:File | f1->f2 in link implies f3->f1 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5W2WpvEDQNE4irxSA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:37:02"} {"_id": "xCAvZZjGNpGdyuEf6", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HvCLT6WkswFCTbBez", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:03:54"} {"_id": "EH599g5ccP5MKpbaJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "gDPLTrm9qwj7MkRLX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 09:44:48"} {"_id": "q3X5vt6EDYcmRHX3q", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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": "ajJyRxhQXNtCm6gun", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:22:14"} {"_id": "TaY6dpbjnqDbHdNSv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | f->g in link and f->z in link implies g = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HpSESxGQzaooZ7Sav", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:48:59"} {"_id": "pstHNcKtoHzS6av7r", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n4FtH5tsAC9KSwzd9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:28"} {"_id": "EPtgDZWGqbM7DHujk", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n\n\n/* The set of protected files. */\nsig Protected in File {}\n\n\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "xACxCpuBwBs2pSJ82", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:50:18"} {"_id": "FtKqKRP6eyKM8hn8s", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall l:link | no File.link in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "Ka7ZsJZ6aD5P7vYMC", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:08:14"} {"_id": "J8SA6gArb9qn4pWCt", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall 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": "sDLK7uBCbgZon3znd", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:25:25"} {"_id": "azkD57nxdzoeBttmF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "rCgD35TfCDDKMuraB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:50:35"} {"_id": "HhSiZ38Wypsgbqa9M", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\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.*link in Trash \n}", "derivationOf": "YumqhEyiizgopKQHc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 16:39:48"} {"_id": "za3mFoGQbmDmRaDww", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "FkFGCrRCfZYbptZAs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:31:17"} {"_id": "q63B3oRHqBxWFcJSj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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": "ebejTEoNxRP7waan4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:02:09"} {"_id": "mKgeiDYdL5MszrxEb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "EXHAXb5RMMgTew6r5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:22:25"} {"_id": "67de6Edn6ac9bxDc4", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 }\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YMTnDw9ybAa7x5e7s", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:37:17"} {"_id": "3QPnpaAiMLLagKDQk", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f:>link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "PXaHfhXodHxuDBr8d", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:47:29"} {"_id": "xqn4Dp7LogMtmDhMu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f in Protected or (f in Trash and f not in Protected) \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QEvDSEom3BbdxiG8Q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:28:34"} {"_id": "ErRg475CussaEo5sH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.link in File\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\n}", "derivationOf": "RCJ8aC2WjvtwxfhwM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:13:44"} {"_id": "NPfstedmoXSpHbw6Z", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:15:45"} {"_id": "Y5qzE2CbkZaSuJ72o", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n \t\n\tall f : File | is_link[f] implies f not in Trash\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "PjKbhBhtohBaWyP4n", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:53"} {"_id": "MCdSq5ioJRW7RQB4P", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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": "9g649ykNrpTRHXMCX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:35:11"} {"_id": "ngfeGpBQ2jJuvKBMg", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D9sLzbgBsfrEqMoFv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:35:09"} {"_id": "42ye9mNe4GKTQmKtX", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x->y in not in link implies y in Trash\n}", "derivationOf": "Y7KW5WihhzXM9iABP", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-27 11:32:23"} {"_id": "KovHkBoWoykegjJYy", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f : File] {\n some g : File | f->g in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "y7dS5piht8geMiN6b", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:56:44"} {"_id": "9Xy4QTb9qxypZdFwa", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "wLBZ7r7R5ZE94zSfa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:16:25"} {"_id": "N8uBdMY8MFMf3ib7Z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "3SWu5BSabT5JYeGQR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:58:56"} {"_id": "vbSju9YurvvoS92tT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.link in File\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\n}", "derivationOf": "9dkdBgqpL4s4P3nbB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:14:25"} {"_id": "yyfsTaQsp7hr8wW28", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | (f->g in link) and f->g in Trash implies g in Trash\n}", "derivationOf": "JrJikHo3Mgw5fywan", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:08:35"} {"_id": "XLAgJ8x6M5jZ7a3En", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y in link implies (all z : File | z != y and x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "vvs46A5wwEQKbaEXa", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:35:04"} {"_id": "WKv3AouZNfh5x4kCW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "x4viA3CrdzjLkWetB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-30 18:08:42"} {"_id": "mAkSG8Qug9xvHe9LT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "fb3oYDD6uQDaSpWqT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:09:19"} {"_id": "uotMeQpX3EohHZvWM", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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": "o9PeLvEBTg5kv6cLN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:35:46"} {"_id": "CYRXo4kEbDGPq5S3M", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BEmHNRWHxPF93ovJu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:55:49"} {"_id": "uco6jFthx2m5srXRA", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "X5uGBjm3DDiFpGnok", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:08:00"} {"_id": "9PFHKAtNNmRuGGdoS", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | isLink[f] implies not isLinked[f]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wejDznQmHtcW9YzE8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:14:25"} {"_id": "8euNN7HZnuY2LSCBW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x : File | isLink[x] implies x not in Trash\n}\n\npred isLink[f : File]{\n\tsome y : File | f->y in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "n6hAWP4vAc2PQkSFN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:55:32"} {"_id": "ZmPczJ55eCFhaeC2Y", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.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": "uNT6RrsFcNrgSnRxN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:33:15"} {"_id": "XJEiWgqKwf4CXFui9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EEXyut8Qwii3NaNuM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:04:55"} {"_id": "ZwEbt3dWGxir25MKt", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z2eimjBECzPGaztjA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:18"} {"_id": "sdzSDsT2A9TGcvwa8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\tall f1,f2:File | f1 -> f2 in link and f1 in Trash implies f2 in Trash \t\n}", "derivationOf": "nSMzrzHasj7Z2YtGb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 19:38:19"} {"_id": "roiw63PfBgtJPGoCL", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n (not Protected) in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R3yuvoTLz3tcPJiNK", "msg": "This expression failed to be typechecked line 55, column 4, filename=/tmp/alloy_heredoc6790174168090202791.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:38:39"} {"_id": "RvMQajTtwFoRiEZxR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zDmBv6g6vyaeZEMxe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:11"} {"_id": "u2iLetae5wkQdzp9y", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "4m22mmvryDeu2xem3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:12"} {"_id": "wKbEeBBMKx2qAipEv", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link and (f,g) not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cB8q6ncTq8Nsjcep9", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:46:41"} {"_id": "JpB5mXPTqcPctfyCC", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : 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": "g85RF9RpMh7xEBJTo", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:55"} {"_id": "iZBYas8fntCGSt2fi", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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": "8EKbuLBmWdmsndW55", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:03:40"} {"_id": "jKWjPnm22ML6hd7f5", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SeuYxh2mEq8e629oE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:30:27"} {"_id": "4DNLafHqCeqKE3XMN", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link in Trash\n}", "derivationOf": "5dJuyydJaZp6WeJM7", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:07:30"} {"_id": "4EvgX6imwaEXQq36B", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not 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": "j6kDW6Ji47W7Eu2WQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:47"} {"_id": "2tQ6PyCYe8GK8r87h", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "jCuooP6xmQLDdT45f", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:13:00"} {"_id": "cHh63BWZdMAHuCDYE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "E3573xgmTesuPAHsq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:13:34"} {"_id": "wdD52fivqxcnMcFdb", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all (f: File and not in Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\npred isLink[f:File]{\n\tg:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L4BocNPrvfJFg5as8", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:56:55"} {"_id": "7f7DocyZXxZQ4LrM5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "TYJnitdRCQrHkN8Sf", "original": "sDLK7uBCbgZon3znd", "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": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-11-8 09:11:23"} {"_id": "NWyTYXh7CSRKCDzW7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KodQPdug2zYoL6FyQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:40:50"} {"_id": "2NFcc7hcHjN5aLDMW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "Thp6KmyfRisgvZrxh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-1 16:13:38"} {"_id": "ftqMDKyuK6fdipFyh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jjYtrBNK9cmLikpdu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:01:26"} {"_id": "h5BDC6tEL7EGQHZBx", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ndiXisWNLXDLWnkmw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:03:18"} {"_id": "ztd47HLTpznKygE9L", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \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}\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": "n4RuQquyFtDXSrQaF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 13:10:36"} {"_id": "rJrk3pc9ywN4kKLKi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CAKosQN48AdtZdsut", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:40:09"} {"_id": "BwepsDoEe5jtXFRWc", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall l:link |no l in Trash\n\n}", "derivationOf": "vyxZbGBbZzgDEqGkf", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:47"} {"_id": "fwawTHXpy9X998PJ2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File| f->g in 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": "owG7Cyf6JdSKbECbw", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-1 16:07:45"} {"_id": "ByixoTMN62bsSC9wX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DPN6Q4Z9artLZf3QC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 16:14:27"} {"_id": "sdBwYoKGxA33JpYdG", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall l:link | no link.File in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "FtKqKRP6eyKM8hn8s", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:08:23"} {"_id": "WJkiby7xtz4idk4Qe", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : 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": "sDLK7uBCbgZon3znd", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:29:58"} {"_id": "dbA8LaQKuk6enNeWB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n some f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MMDQATEnPGRMM9Eqe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:37:48"} {"_id": "8cnxXwPsWRfy8LeN5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\t\n}", "derivationOf": "aqfvTx4ehygP5kpBg", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"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}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2020-1-7 22:39:32"} {"_id": "JE8Lf6TXoqG2dph3t", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hMazxcZNYTrFtTcQ4", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:36:00"} {"_id": "5hZffiTmNccg5bd76", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n (no Protected) in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "roiw63PfBgtJPGoCL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:38:47"} {"_id": "vm2HNSCY89YgaThqk", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | (f1->f2 in link) in Trash implies f2 in Trash \n}", "derivationOf": "ByixoTMN62bsSC9wX", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:19:23"} {"_id": "6xXW5tFKzzuEZNeQX", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2wReqBPm6ybkToSeD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:20:35"} {"_id": "KFnsRRmaodPuc2fA3", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "nFQie7AANH4GXgTMj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-3 09:28:27"} {"_id": "gRotsoXLg69uhWa4X", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AN7z78H2bXTqcY28W", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:50:22"} {"_id": "Mri3Jgf4o68A9j9q9", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "o9pnN3PeZpo5ohTpg", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:55:06"} {"_id": "hnNzNP9niDDMEzLRD", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\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": "WpeNsnXidhGNsGwvt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:09:49"} {"_id": "kKRBTCYi9ZWAoSH2X", "cmd_i": 5, "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | f->x and f->y implies x=y\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "34zEjspH4oT3J9NjQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:38:19"} {"_id": "evcnikAuRCDYgg92F", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f:>link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oSdka3hwMxpNtkt4c", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:42:41"} {"_id": "dLmQjdHeAR9JgXdYS", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g54wivaBBMh9iM6mo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:38"} {"_id": "aYDkBWDp5RoNRgbvi", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\t\n}", "derivationOf": "jZeizf9ZWtnAzdyiL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:22:11"} {"_id": "6DkfuwQAYibJzRpQS", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f :File | f.link in Trash implies link.f in Trash", "derivationOf": "4ncrmkCmjqDDgcNgT", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:04:59"} {"_id": "vH7bu3Tx42PRhr82J", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink [f] implies f not in Trash\n}\n\npred isLink (f:File){\n\tsome g:File | f->g in 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\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J2CPanTdQ59DmPFWM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:42"} {"_id": "DWzg7tKeYLDbSfjT8", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f.*link in Trash \n}", "derivationOf": "soPpyrAnMYJuNeuSR", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:38:54"} {"_id": "6frtL7reyWa4L5pe6", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1:File, lone f2:File | (f1 -> f2) in 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 link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "vbSju9YurvvoS92tT", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:16:00"} {"_id": "o9pnN3PeZpo5ohTpg", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link and f.link) implies f.^link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "mLRd8LJBC5eJQ98KJ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:52:30"} {"_id": "xSztZ9dTXTSjDCn9t", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f->f2 in link implies f2 in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vye3RWiybe5ZFcQ9T", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:53:44"} {"_id": "mLRd8LJBC5eJQ98KJ", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link and f.link implies f.^link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "FApfNfr85aKgemX8D", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:52:20"} {"_id": "goB36ntyvpENjzGe9", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n all f:File | some f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oQhxJGxZWxBrWZsfC", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:28"} {"_id": "j5R9ZK9tvN4KCQJ7F", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash in none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fogx6i3ctDYMDMWs6", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:19:51"} {"_id": "zRWgJCsDeJxXHYMGd", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n (no Protected) in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5hZffiTmNccg5bd76", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:40:01"} {"_id": "3YsMQDB7gPnoohXge", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \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": "p25h6mGZP2yaZ7PAB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:21:53"} {"_id": "R9wAYEGWv8tXmTsoT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link implies f->h not in 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": "AfpoHQ6mkvbJEkKEp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:53:16"} {"_id": "XAdhznwuzyagtYxpw", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y link y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uLj8ZFwced2p4ZHnR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:33"} {"_id": "ey2ARuYAdbJGwFYfn", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "5GgZZurZZikbkT9pR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:46:44"} {"_id": "q9558rtNJXZphbBEW", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CpC6GhftMGyyAyjjW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:47:21"} {"_id": "vYaTyeL7HPvWNDZWp", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AfjnjYB5LTNoeXCys", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:10:31"} {"_id": "46jGNpc3pjLGsTDzT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vperXpfTuSPT7FhiW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:42:32"} {"_id": "ERoa9BGN7RJ9nmN9f", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "jQbiM6dTJCXq8hAzp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 22:27:28"} {"_id": "LJ8KT7yDgGYHgeyve", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 21:31:07"} {"_id": "p25h6mGZP2yaZ7PAB", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProctected not in Deleted\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Bsm8iyEcnzujMCdXR", "msg": "The name \"Proctected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:21:44"} {"_id": "YKStY8xKnJpeDrTfm", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall (x,y) : File | x->y link y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PKQwBFPnqAnZC8DXi", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:54"} {"_id": "irLr4ZddYcd45qrSd", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | 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": "Au9sAR6tKjNXrk7Qu", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:11:20"} {"_id": "syAJMRbwrXzX44r8j", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y : File | isLinked[x] implies not isLinked[y]\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MZ6p8GCBaJM3X2fpk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:12"} {"_id": "4CJ74m5HjuPn7iaZB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\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": "dntEavc2X3fRKc6tf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 17:32:40"} {"_id": "59YSG2aDzpHoNSwTF", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n\t\n\tall f1,f2 : File | is_link[f1] implies not is_link[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "TKWs9FQEnyHEtesnP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:48"} {"_id": "gkMEZNKZ7gXpbiJro", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies not f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "4MiWTGPMyKm6AcHR3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:21:19"} {"_id": "PGzFcJ2fMrujmdeSu", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[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": "3dZnW67SukL2da3XF", "msg": "There are 3 possible tokens that can appear here:\n, : =", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 11:17:50"} {"_id": "hfxhe4TEoy9eQyzCt", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | g in Trash and g!=f implies f->g not in link\n}", "derivationOf": "zNYpFDKc7z3At2YEZ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:52"} {"_id": "TNLrQe8C2MdjSaNjt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "7ecBMPMi6nvQmiA6X", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:36:27"} {"_id": "83w3n7sGcebv4A9ow", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "WnLLrGfwgpMmWK4W2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:17:54"} {"_id": "bPRe53AcWDdYFhZvP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* 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": "4etoGAsFFPLmDfPwf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:47:57"} {"_id": "gejTX2iomaoutxzQp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "aopaAjTNCDKBDbY4R", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:06:20"} {"_id": "Lw5hnNujxhh3JE9Cu", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "uco6jFthx2m5srXRA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:08:09"} {"_id": "jdWSKN7TRr3CmDW2Y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Eq9mMw6dp3c7Rr3nz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:01:17"} {"_id": "fE7jwSPmJA9frDH4g", "cmd_i": 5, "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | f->x \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kKRBTCYi9ZWAoSH2X", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:38:30"} {"_id": "PMwwLt367avmjwftT", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall p:Unprotected | p 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\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M6jZSqhPENu2AeNCb", "msg": "The name \"Unprotected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:17:20"} {"_id": "4tFZFhnEnRxev4LNz", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p:~(Protected) | p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ue5LK8zhFna8FeoYG", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:41:47"} {"_id": "ashTcJjtGfJJJtGJa", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f: Files | no f.link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DHxCmGcJxT9MXP4My", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:50:06"} {"_id": "G7PMd4pikwGsF45EN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not 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": "mWtfrNt8DPxGNRYfp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:00:15"} {"_id": "SrkaSqAwtr2p4Cmq9", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in Trash implies g in Trash\n}", "derivationOf": "ZoomzeDbjSRcZTMf8", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 13:50:50"} {"_id": "bhmKMZCKSNvENWkoY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B72hgCkpZwQ4v436W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:28"} {"_id": "HpSESxGQzaooZ7Sav", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link implies g->f in 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": "Rx9szgXSTBNsmYjxG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:48:13"} {"_id": "soPpyrAnMYJuNeuSR", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f.*link in Trash \n}", "derivationOf": "E7eGZWRtAauzoEP7k", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 16:21:41"} {"_id": "duDrY3asmqXWmw9ws", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "CgiXMt4i8kifAuf3v", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:53"} {"_id": "oaTXbFKqwKH5o5Q4T", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not Trash\n}\n\npred isLink[f:File] {\n some g:Filel | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j4M3DMMe8dXhWrY3p", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:55:04"} {"_id": "ddWd59ZKSZJs8udqE", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "eWxCTYyFGWHGJ4mdH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:20:12"} {"_id": "En9wYFQZe4M3qscGj", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t~(link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tK6t4k6AE3k4jBXNg", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 598.9921875, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-1-7 11:36:36"} {"_id": "nzdjKrRtbXsFPmfes", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "pEZFDuyLFpm2YxaaH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:36:25"} {"_id": "ue5LK8zhFna8FeoYG", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\t\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": "6WnMyPE95m8YbNomv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 10:40:31"} {"_id": "j4M3DMMe8dXhWrY3p", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TujiJNYEMMRAcBx9M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:06"} {"_id": "mXeMMg6wrmWmfLLvb", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y : File | isLinked[y] implies isLink[x]\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hcGWzFuNTv9PkQJRX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:09:31"} {"_id": "fapgacfaAsqcGqPGB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:20:18"} {"_id": "DuR37BgbQZ5p7N7Fq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "iXf3P5NNAgbcApbKN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:35:06"} {"_id": "FE9gox7Ryimq3yxpq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "9kcvAzmcCDC98nJCF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 14:48:07"} {"_id": "8ddPgaw3s3pDeh3y5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "phuSDaAa9MhpeWBFf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:15"} {"_id": "PDcfP5YomeTba8Hip", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link and f in Trash)\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WH6gfb8kT2hawv2Cf", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:41:00"} {"_id": "txu273Ldxp5Sorih5", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yqKSEnWGKdE8wEYQn", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 17:13:23"} {"_id": "rfJ5SeWsT3QhHYmPB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\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": "th4ixPKRaqPjtk86z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:24:54"} {"_id": "DyX4WtHqdN3jMHQ74", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BTu7jspzyG7dG9wG6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:09:51"} {"_id": "bEd5FQzc5SZKpNNhH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gGghfB9CNuJZL9NPN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:38:07"} {"_id": "YATwi7HsCXDWM52Su", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y in 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": "SF4jhozR4SsocPL2Q", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:43:28"} {"_id": "AKENbDSAeM8SJh7Fr", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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": "b3AZdsdPGqyG3Drnt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:25:13"} {"_id": "BvLcCsGQunTkhjiRn", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FcRLc68wbHCwc5hCC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:02"} {"_id": "hWMcDhCqYFGfrWGWB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:34:27"} {"_id": "C7uyjSigpR3qL5Hae", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "5AcfNakeRQRvG6emh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:44"} {"_id": "5Xy47upgxZTsAvzt4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "rRcviNuNjneC2i4yM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:22:36"} {"_id": "xwoqAJd44uzwqSL3F", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "sRMsgd9ujBEMeXkgy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:43:09"} {"_id": "DnHuNr2LsxDq9vi63", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "rccqi23kLNrFCb3sd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:51"} {"_id": "hXmWqqine77kxRJvb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:53:34"} {"_id": "nZx8CpiiQ9HkD7ETR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x : File | isLink[x] implies x not in Trash\n}\n\npred isLink[f1 : File]{\n\tsome f2 : File | f1->f2 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "LPTgYvE7j7nDbg3fr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:31"} {"_id": "tK6t4k6AE3k4jBXNg", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\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": "YBxEjtdAJnJfY5p4N", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:36:11"} {"_id": "x3vZ5BDx9MYQYApCe", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall (f1,f2) : link | f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FwoM6ChxJLZpfpLxT", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:44:57"} {"_id": "SHjQrpvniR5Yphf7N", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cRuMDAMmG2v7i2Aec", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:32:02"} {"_id": "NcQy3hSsc6WhYqQNi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tyqeaFmmdRreNvhn5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:22"} {"_id": "EjbWfjyRzLGvRS8dg", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall l:link | File.link not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "kcK2PBDCtjdhM8MN5", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:08:42"} {"_id": "kLmjxbtipvh2ALwmh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qv8j9eSqbRPEXqhEN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:12"} {"_id": "HbYm72KNwpnh5eCrh", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall l:link | l in Trash\n\n}", "derivationOf": "ZHfFkQvWroPYgMakQ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:26"} {"_id": "2wReqBPm6ybkToSeD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 09:20:30"} {"_id": "Mumgp3MtJvAFaxqjt", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck (aux1 iff aux2) for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall 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": "qPXh9C3ab87H2TNs6", "msg": "There are 4 possible tokens that can appear here:\nNAME seq this {", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:44:28"} {"_id": "6Fz3G6Hr9fZ6tGG7P", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "6fnHkZnHiLgr3dXvw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 16:19:40"} {"_id": "K5L6EPNub9yrzwm8e", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected and f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WxLbdhYNBTFpi5HGr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:03"} {"_id": "hMprt99ACEuqfsdva", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not 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": "qzXznhof4Q72xKi4v", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:00:55"} {"_id": "6vhssDTk58g8dCkyE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f in Protected or 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": "ar3wmkBb6XW27GGNz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:23"} {"_id": "3g7yLE37fxqHxvA6q", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\n}", "derivationOf": "vE8EPQW25Bdo4P3Wp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:55:16"} {"_id": "hRNCQSc2HxpECJD8Z", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Proteced | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KLwzgo73uqqcXm43Z", "msg": "The name \"Proteced\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:30:17"} {"_id": "9LxBxPxEru6S5Wh3h", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | (f in link and in Trash) implies f.link in Trash \n}", "derivationOf": "i6gSRkm7WYJzAJTFv", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:49:44"} {"_id": "R8HNFJqPm5NavDEc4", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in Link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "tvCDxkBijWsqmdBwB", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:37:24"} {"_id": "NKQfjgzwabgKyeZsF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "vzJzB2TBAFQMwf5ct", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:41:13"} {"_id": "7d3x99n9gzhzjSM65", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall 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": "y2hrd8ZTyqCbyE5eQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:25"} {"_id": "QNKgBzWNsxf34FSrR", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not 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": "D7BNNiYHuBzmkqW3p", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:30:11"} {"_id": "gL4osjS44KiRBXLEz", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vRJx33RZMhnQeLMCQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:49"} {"_id": "xeWecLfgcCZjsiJDE", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | no (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "5PMKQutcZwRe5SfHR", "msg": "This expression failed to be typechecked line 72, column 24, filename=/tmp/alloy_heredoc838404749003969665.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:38:40"} {"_id": "LcesKvfKMzezeiwKx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:15:19"} {"_id": "TYJnitdRCQrHkN8Sf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "hmZjDnmWQ82jTpMrP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:10:39"} {"_id": "cRuMDAMmG2v7i2Aec", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\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": "J6BmcqBKWq3gTbwZS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:31:29"} {"_id": "NbPSYQxKApz7ADXGh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\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": "BwKHuE9gCy6X4Mk3j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:52:49"} {"_id": "PYkhpavhW7tNDbu3e", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "KFnsRRmaodPuc2fA3", "msg": "This expression failed to be typechecked line 47, column 2, filename=/tmp/alloy_heredoc11283399564285794862.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:28:32"} {"_id": "ANhwnqu4CyvwARAvM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4fdSz5D3Tdf8WxHrZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:04"} {"_id": "MG7SNM4bEcbkme24N", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: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": "s6N5nT9xBvGW2a7fH", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:33"} {"_id": "rb56et2P3hmowCRAx", "cmd_i": 10, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "9PFHKAtNNmRuGGdoS", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:16:16"} {"_id": "tip4B2kA2vXLS7t9e", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n\n}\n\npred isLink [f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "52qNSZXiRm8DHcFtt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:22"} {"_id": "ksFkNh6sYs9oRMfd3", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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,g:File | f->g in link implies g in Trash\n}", "derivationOf": "ow4TFQe8AHYiDGXaj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:17:15"} {"_id": "GmwWZ487jxAL77v23", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "83w3n7sGcebv4A9ow", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-9-29 16:18:22"} {"_id": "KDrFcmjQTJ9G685nd", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T6WR4dtwFjcybWQkD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:01:44"} {"_id": "PK55yTtmruQSnYNrg", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "2z63GR8FwvKmRZaaq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:47:31"} {"_id": "t5pY67C68mxwbabbT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "CBBAGwgcdS7LZq5uo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-30 18:08:04"} {"_id": "jXenwjXekotpjCicM", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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}\t\n\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": "EmiJxDcTEDu3swuun", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:49:16"} {"_id": "p6q3e7TqwagJzTj9s", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "nZuoQCSntkKFPtpy8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:15:11"} {"_id": "mnL3YRyxsR6gxx2Q9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "NhZHpGKGCm84ujR6b", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:36"} {"_id": "bTHhvxxBnSxejFHXz", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eMX9DGYWayj2rDAbG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:39:56"} {"_id": "gWXQCGLNa9vrP8CrA", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\npred isLink[f:File]{\n\tg:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hRWQ5p5rxuGZaKeDW", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:30"} {"_id": "2MsQ4L3s8ELfAzSet", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | one f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "icEgxYPkDsCZ22m29", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:09:20"} {"_id": "GvX3cpPcXKywTsFPA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \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}\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": "hnNzNP9niDDMEzLRD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:09:57"} {"_id": "ZFqroZr6skMr9hbn8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "7uyfn3WENqqBCtiDx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:35"} {"_id": "HEcgyG9AMJsSnSrrk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "kJWovJsbWP6AByiLw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:06:20"} {"_id": "NsuCYhiutF69oNzha", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | f->g in link | g in Trash\n}", "derivationOf": "Se73SKK5L49hcuQTG", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:47:17"} {"_id": "wwpgDQq48BitySKYa", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "sDLK7uBCbgZon3znd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:31:03"} {"_id": "Yas8LHe2BaQvonWhD", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eic2hAG6dHBCJRdpL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:54:59"} {"_id": "nuHWNeyidw2WX2khH", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | \n}", "derivationOf": "BXEBKGTPQyMjcsdoR", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:48"} {"_id": "4MiWTGPMyKm6AcHR3", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f in link implies not f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "p65qFAiBZAkECnz5S", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:21:09"} {"_id": "b3Cjuhue5G2q7s6Cd", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "jWgNebbM4J5M72Abd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:30:19"} {"_id": "cqWY9mStNwufrpQSY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "LkFXN3JG8RSofLx4i", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:40:12"} {"_id": "cdZWS87wWc5xStqnT", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f:>linkn in Trash \n}", "derivationOf": "mCRXdWLZ677qW7KqB", "msg": "The name \"linkn\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:49:09"} {"_id": "qGEPo6DCwZQvg6QPj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \n \t\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n \t\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n \n \t\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n \n \t\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n \t\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \n \t\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n \t\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n \n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \n \t\n\tTrash.link in Trash\n}", "derivationOf": "66y3wZHCuojdvbvbB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 09:23:45"} {"_id": "pywXPP7Ds3tMv3QzK", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xxZ2ueWMC87EGvWbQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:08:32"} {"_id": "7uyfn3WENqqBCtiDx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "u2iLetae5wkQdzp9y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:26"} {"_id": "zPRn2HsG2WHKJsXBq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f->g in link and f in Trash implies g in Trash\n\n}", "derivationOf": "5JEmXGQiY3MWcarap", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:33:20"} {"_id": "Tot44YatupZ6ATFpR", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "HPfkdNKj9c2nhs7GZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 17:17:48"} {"_id": "cYdA4iqQWyBWu6L7y", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | (f->g in link) implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X948Q8otoaCDZadzu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:52:19"} {"_id": "PjWCNFYjkL5yKEgJ2", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "P522xugcmT882h2xB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:54:33"} {"_id": "AMiuEozBDbgwgjSap", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g6TpEihcMFukuP8SR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 23:15:28"} {"_id": "G4xcPwnDTgAYQQLma", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "LHhL4E2v4EBrTiFg8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:08:45"} {"_id": "RseJo6eeci3serQ2n", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "faxeWWKGphW5Qyr4c", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:08:19"} {"_id": "YB2f6dws7F88hoZrv", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n\n}\n\npred isLink [f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tLnkzs8AjQAHpTLdM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:55:46"} {"_id": "ZnSc99em2gZSmT87f", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\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": "KNysxmz3WP4YukmTj", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 12:09:29"} {"_id": "BA6oDEq9TcZcEB6PG", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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\n}", "derivationOf": "Abk9imKzrSQAZXuGA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:37:27"} {"_id": "r94tiGS8nSrYmQRiN", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Q7ayZAMo4jbzQhxht", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:35:05"} {"_id": "rgJ5CCNEqNTE7MJs8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y : File | x->y in link implies all z : File | y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "pRr62jDwoxeYWseht", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:36:46"} {"_id": "cWF7gYmqkuDqQRws9", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\n", "derivationOf": "6yPgbvEzHKq9uzbiC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:09:18"} {"_id": "zgF76QaXK2DRhJ7HQ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not in link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "yzSTCZi96CbFqGaam", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:18:44"} {"_id": "mBN8uSF27Dxv6429M", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "Mri3Jgf4o68A9j9q9", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:55:19"} {"_id": "icEgxYPkDsCZ22m29", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CkXBQsjYqDHsAjAyq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:07:47"} {"_id": "6thiNbiyNPG7tt7Xp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NmDkAnv7HZcR6G2Zp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:18:55"} {"_id": "TujiJNYEMMRAcBx9M", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nsu7sNbiAsPE6Qaj2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:42:10"} {"_id": "8dSMELmHi5iG9AAap", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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:files | 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": "sDLK7uBCbgZon3znd", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:08:27"} {"_id": "ycs4XvSvoFxMn2zk7", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall 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": "QNKgBzWNsxf34FSrR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:38"} {"_id": "CeLDWewQo2MMx6wai", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in File and x->z in File implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MrExRLP3kyMAnk8q4", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:49"} {"_id": "AN7z78H2bXTqcY28W", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c3sjACWkaWeFM48mA", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:49:40"} {"_id": "dxpqv7ZMeR49aQPpT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "66uKfawcDaN6cFsyk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:43:32"} {"_id": "uRGxYjtyBbweg2EFa", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i2dWvQXmBxXsrsDAC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:26"} {"_id": "utdXJHTKW6ouCWjyv", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "WZgkKJ2k3qqB3eKgh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:47"} {"_id": "sfqEvk889crbr3unS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash \n}\n\npred isLink[f:File]{\n\tsome g:File | f->g in link \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": "3C7JkD73FgyiYCwaG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:56:47"} {"_id": "vEQLLDkGsiMt9kYED", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all f:File | f in Protected\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gd2fo7k63wCqQqTfo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 21:38:41"} {"_id": "BXEBKGTPQyMjcsdoR", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | \n}", "derivationOf": "xHdBrNManEFtv58tf", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:22"} {"_id": "ZuLESAZS9Z52gjsdX", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f<:link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "3QPnpaAiMLLagKDQk", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:47:36"} {"_id": "4PAQRzyd9drKShuY8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gWtEWaGfuxHnTNoN2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:48:57"} {"_id": "EtPazcC83WTtT7KhM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Foa2vhwhHRMjbMWrH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:25:33"} {"_id": "kWvCSMGNhhPaJbcML", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pR7bQPwopPGxpSMqP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:12:41"} {"_id": "4AyYf4KJX7rpBeuZ5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:47:41"} {"_id": "J3jvcmwZ7o59TttG4", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2 in link) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | isLink[f1] and f1->f2 in link and f1 in Trash implies f2 in Trash\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "phAaJf64z7YRYG94K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:14:43"} {"_id": "8cLyHxeCh2TDtihGb", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected -> f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P3Fga9LfjKKYdSjAc", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:58:56"} {"_id": "abaAyGDgGwRSETvp3", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "m9RcyazsnL9mKf29M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:34"} {"_id": "nyEYKTPZ5rXkWw7bo", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:06:15"} {"_id": "pehYoSyQQna65RiE5", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g : File | f->g in link and f in Trah implies g in Trah\n}", "derivationOf": "oQpMxQ7BzxsZfEw9g", "msg": "The name \"Trah\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 23:30:07"} {"_id": "HPfkdNKj9c2nhs7GZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t(File - 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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "5pF7A9e4rRnGANDsa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 17:14:30"} {"_id": "LseAKn7qwBEk4tCsM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not 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": "yGe3qmiiSkSDvFXTa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:48:10"} {"_id": "H6eCmcHFvo7sRibc4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 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": "BPDoKb7nvDgBN32XE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:13:55"} {"_id": "t49XbgTK7CBrbdpxg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BvLcCsGQunTkhjiRn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:56"} {"_id": "Y7KW5WihhzXM9iABP", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L5hZfAGnKzf9ngR3s", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:31:48"} {"_id": "apksAGGnCLbjuA8pA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "677JNbqs3i6bdc5iy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:02:25"} {"_id": "yzSTCZi96CbFqGaam", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not in link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WxECtjNHDfnvmDg9j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:18:29"} {"_id": "iv6zKFshh7noPFqHA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "WhucEYN7ycYGHiLe3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:55"} {"_id": "PKQwBFPnqAnZC8DXi", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y link x\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XAdhznwuzyagtYxpw", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:44"} {"_id": "D5Dn6yCNKZBDTiXS3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f3 in link and f2 -> f3 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}\n\n\n\n\t\n \n\t\t", "derivationOf": "QMz6cwcnR6x3RWwjT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:18:17"} {"_id": "znCC6tSt7LAzQovLv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\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": "dxmfh5u8p2nqQp43T", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:01:55"} {"_id": "Yt6iygPFaxsESdqjW", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | f1 -> f3 and f2 -> f3 in link implies f1 = f2\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\n}", "derivationOf": "snuTM4w6tmtdespB6", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:25:00"} {"_id": "TAMaz56jFqdaifuvC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n}\n\n/* All 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": "JcsyoYEhnGEmyeRft", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:25:46"} {"_id": "3C7JkD73FgyiYCwaG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XcfuWBYecF3NPXGrq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:49:23"} {"_id": "pMFmSkwDypGESqEAv", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | f1.link.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": "PMDrWRKexctxsyNiz", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:16:40"} {"_id": "JsRyBtTcAqwoj4RzJ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "sRyqQY8GqiNBhmCJY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:06:49"} {"_id": "cWd3XkJF4W3Et3vA7", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "iscNmPRGfheaqqZ7G", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:15"} {"_id": "uzvPCzm9pu7TEPtrS", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "D5Dn6yCNKZBDTiXS3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:20:01"} {"_id": "oMzLjcAqn6eJEe6k4", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "WKwkSuJhLABrXsHJz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:35:23"} {"_id": "Bc2GSpvLFscoN63pP", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no Trash.link\n\n}\n\n/* There are no links. */\npred inv8 {\n no link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n no link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "ygTHwdzvFPWycm9jf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 10:03:47"} {"_id": "gdMHk6u8DpzfDEKns", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "4CJabpoX27ws6Ji4k", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:48"} {"_id": "2dxL9GzDAzCwfg6Wt", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KpMfK4QjLwj8aCSNE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:53:28"} {"_id": "FNnMHRkD9pNhNmfeD", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CqzFvhnekHPgupoMu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:52"} {"_id": "gTNdNhKA2vdcbsDPo", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z : File | \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4cTphGr7hpobJfsS6", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:03:51"} {"_id": "8Cxoi55n9sitWYsR3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eTLoRXBBqLWJWczYF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:48"} {"_id": "5tyQQ7jvEmtjpyfDg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "SnLnKGB8icioyCfGs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:43"} {"_id": "cx4vykoodrKSWpvNN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y74pyWjc6t8AnfTw4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:56"} {"_id": "64e4eyPSCqr2utK4S", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PtRhDy9ZGmR8vhE4a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:56:54"} {"_id": "n9hqBGC9fjv8vdnyg", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "MF4PtmwwtWmtfycoo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:20:49"} {"_id": "2WCryDNcGsvbrm5Rj", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tXCagix5AtPisBscZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:11"} {"_id": "JqDGZJsBQewEmDLtc", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "6wieucXYBW8c5AX8L", "original": "sDLK7uBCbgZon3znd", "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": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-12 11:21:02"} {"_id": "8FNceER43dzPvT4fB", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4tFZFhnEnRxev4LNz", "msg": "The name \"p\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:42:57"} {"_id": "gsXyiy2pWpBETaQnm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WAEhmpvWMYDDmnzJR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:36:44"} {"_id": "BGFA6JNRRfGBxLqMg", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "d4idtyeaPyCGmMTRi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:45:08"} {"_id": "6k8nLmLStDywf7x4k", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Trash | f not in Protected\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i9Qw4dDhA8i4hBaiM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:03"} {"_id": "dC5tC9RbXwE5SvkAC", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "Y34hjADaq2W2Fu2aA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:37:00"} {"_id": "Lc4LCJh2LdMY7b397", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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 \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": "5u98QyZ7tKSqFeGCS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:11:11"} {"_id": "KpMfK4QjLwj8aCSNE", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2wb2FFn2z88t8Mbzj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:53:06"} {"_id": "WxkXa6NYCA8SsDuXx", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "PGAfse3iE9Joda9LT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 19:07:46"} {"_id": "kSdTvm6mbma8Mx7ML", "cmd_i": 1, "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:Files | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DC5uvqKqsTWEYrpx7", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 21:31:44"} {"_id": "uYygQC9w8MFgfz6mC", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "yBfuXniLntkfDMyBu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:47:58"} {"_id": "TSu2F387fJhm2yqsn", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all t:Trash | t not in File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r8fuQDYgQ9RB7CWZS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:31:17"} {"_id": "SPPTQkKpmfZ4P6Mpz", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "DXcTjCXB98uSi6qzs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:51:00"} {"_id": "aCjg9r95HZ9R44zXh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "QR6nMyGuD2kJPFk5z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:08:53"} {"_id": "xnTJ968g5wABHEF4Z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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": "apksAGGnCLbjuA8pA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:03:00"} {"_id": "fb3oYDD6uQDaSpWqT", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "6btTuhazq38Ltbndf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:09:02"} {"_id": "qBP83HPaC5h8S2eLB", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l : Link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\t\n \n\t\t", "derivationOf": "DD4ov972zW9Q6SAj2", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:22:43"} {"_id": "vceuY7hENtGQBcsPX", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tFiles - 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": "j8zht227Z7iePbaJe", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:35:02"} {"_id": "tifRAKuWr6taqobGG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link) and (x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ogBc9DXtM9P9WA8fk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:49:39"} {"_id": "ZtvHfXGXpbD9ZP3wa", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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": "6QL9s298fc4ceAQry", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:02:40"} {"_id": "KP5kzfxdN24WT22qW", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected 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": "EZ5u7YARRbcp4Fcwv", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:40:13"} {"_id": "5nyFkbibpHezvQfKC", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g : File | f->g in link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not 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": "qzC6i8AhQWSkdBS7E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:11:18"} {"_id": "mGisJsbc3GXzMJAAL", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6BmGjA4MJSNLApzMc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:19:42"} {"_id": "j52TybEw52BvwPgWc", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | 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": "FnMnXfsyf7XNeKkmx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:09:58"} {"_id": "dCtkjPKaDqiBFaHsY", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | isLinked[y] implies isLink[z]\n}\n\npred isLink {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JDJRGnG7PDatJ6WKv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:07:40"} {"_id": "3SWu5BSabT5JYeGQR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "ejL95jQXeKxpZZCXg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:58:51"} {"_id": "SkqZQgozcD7JkyX2e", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall f:File | isLink[f] implies f not in Trash\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HyGG49vfeqpQLogAL", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:48"} {"_id": "i5fQeMqbS2taNCNqr", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "YdsK5TMoHcky8ZpyW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:11:25"} {"_id": "8gGsjivmfhyh5ZjA4", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7jupeDkM2i3oRXfX6", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:41:30"} {"_id": "NjZT8QcWn48gjYq7T", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Trash | f not in Protected\n }\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yuBWNbEGbcR75wx5o", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:45:14"} {"_id": "2ktHi3SbNz775WmR2", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "fiwnirixMzsEnRHRb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:09:06"} {"_id": "gwNCEyFfekXrJeZyp", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in l.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": "9jMitar8bSTFGBc9X", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:12:55"} {"_id": "uMuB8642LjFZu2DoZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "g8KvCSYSM2xyaxqRR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:00"} {"_id": "qZuxAFjGu8dZS3KRu", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\npred isLink[f:File]{\n\tg:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pif7XhyragmmprgTx", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:59:44"} {"_id": "AEy7xfNzRFqAjGcKF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZtvHfXGXpbD9ZP3wa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:02:57"} {"_id": "TiroY7wCyZegssLtx", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | f in Trash \t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "QS7gpqYv2W8vD2iTi", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:43:48"} {"_id": "39wsgjMxzpXvBpxnH", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7Z9LgX3FtB7nJxPJQ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:34:39"} {"_id": "JDJRGnG7PDatJ6WKv", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | isLinked[y] implies islink[z]\n}\n\npred isLink {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4EvgX6imwaEXQq36B", "msg": "The name \"islink\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:07:27"} {"_id": "yqrCvFDymnvAc3t4C", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e3kphiPasvo6P2iTX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:46:09"} {"_id": "Mdj2qtT4FWfvCS9YW", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\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\t\n \n\t\t", "derivationOf": "xSrBvrb5pRh4GjEwo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:30:21"} {"_id": "ar8gTmMs29vWMbho6", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NqxCy7Dx6vYi5emBF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:47:51"} {"_id": "t2628g2k5iiuyN7Sb", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:FIle | isLink(f) implies f not Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "NbPSYQxKApz7ADXGh", "msg": "The name \"FIle\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:54:51"} {"_id": "xdCrKjqbEj3qSsz63", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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}", "derivationOf": "zx492wM9YfR7s5Ss2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:18"} {"_id": "tyqeaFmmdRreNvhn5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y5EZLSh9mhBaJAzL9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:58"} {"_id": "HwzFkvC3wf8v9vn8y", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | \n}", "derivationOf": "MDSkt7TYYtZCXDiXc", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:59:34"} {"_id": "A93RZPorQJJrHq3AL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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": "w3Mczj3jfGPJFaF96", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:13:56"} {"_id": "7w7XCBSGueRdYsNTb", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6qeyGPgAiPSx4JJP4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:18:22"} {"_id": "E3573xgmTesuPAHsq", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | some 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": "LzNZLbEkiPBKSpwRS", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:13:15"} {"_id": "zNYpFDKc7z3At2YEZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | g in Trash implies f->g not in link\n}", "derivationOf": "LvwCZXuD7TpESMBzH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:59"} {"_id": "eFSy5CCi74rEvfRxC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | f in Trash implies f->g not in link\n}", "derivationOf": "5tQHFviZdWKSMbnaH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:06:16"} {"_id": "gDPLTrm9qwj7MkRLX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "jQofCGpuFTZTxitua", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 09:44:29"} {"_id": "vye3RWiybe5ZFcQ9T", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\tall f1,f2:File | f1->f2 in link implies f2 not in Trash \n}\n\npred isLinked(f:File) {\n \tsome f2:File | f->f2 in link implies f2 in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YH7X6H8bSFxJfiLA7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:48:34"} {"_id": "52qNSZXiRm8DHcFtt", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n\n}\n\npred isLink [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YB2f6dws7F88hoZrv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:57:40"} {"_id": "mxcoRPm5Wo3rCZzs3", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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\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\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "Xno2kmj4jLFpYAvwP", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:42:06"} {"_id": "qArTLabijSo3Zigv3", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "n4mwNww7pHHrYEg32", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:19"} {"_id": "Y62qcPPgLX9xXf4Mz", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "FbJH98zPCZ4bKmLP3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:10"} {"_id": "tdgH26XwvpEiPnRBP", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | f->g in Trash implies g in Trash\n}", "derivationOf": "d7WjpPKxZ7NtHowr3", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:46:12"} {"_id": "hwPKmzPtxz7JpL9ov", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] { \n some g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q6mngjYaS54d3N9cu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:58:36"} {"_id": "uRLFZMGo3fTy5jBkS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:46:42"} {"_id": "rkxXTjdAqGRNyjbEx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XGo5rWooj5PjDrnfC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:10:39"} {"_id": "d7WjpPKxZ7NtHowr3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f.*link in Trash \n}", "derivationOf": "HhSiZ38Wypsgbqa9M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:40:05"} {"_id": "2ucbb5zsdgDZMKhta", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "RbqyHAZFGMHzpwNv7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:15"} {"_id": "edkbuSZ5XTMcoDXhy", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f.g:File | (f->g and f in Trash) implies g in Trash \n}", "derivationOf": "abaAyGDgGwRSETvp3", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:05:31"} {"_id": "2z63GR8FwvKmRZaaq", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "rzbNoTzZfaheLgDdq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:47:21"} {"_id": "2x9Ku6jhy2r7ckcYP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\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": "ANFNvqgDfKqwwzZSh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:08:00"} {"_id": "AfJehnS2MiFdaiWAy", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File , all x: Protected | f != x implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLink[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "isujLoNzPxwMpZKSD", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:11:40"} {"_id": "g6TpEihcMFukuP8SR", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | 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": "omN99eKrcq3kmNw3a", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 23:14:32"} {"_id": "ngE74RzL8ika9vPvA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fwawTHXpy9X998PJ2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-1 16:07:57"} {"_id": "GRJr7az4q5nTT6cG9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xcm2FRRK3WeDmASJd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:00:48"} {"_id": "n98oRN4v23LtG6DS9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H2ehFRdgxTzgNcSA6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:33:55"} {"_id": "J4Qrf8Yuc34nJYSo6", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "6qi9X7FgnPfYZZBXM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:47:32"} {"_id": "6g4PQ8ZR7b59ctZT2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "hZFpN6pzmmCyRAibL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 14:54:05"} {"_id": "F6QXRCWRXQuihkutj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gEhjxytAJhK2eHJHM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:54"} {"_id": "PZHhhmzroroDDzgPX", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x link y\n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yTthvwK3Xbmyf2Mxz", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:40:29"} {"_id": "dgJ74koPp2N57D5iB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-30 15:35:36"} {"_id": "yd2ArCkZPZ5shBZuh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KP5kzfxdN24WT22qW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:40:22"} {"_id": "fv7uxy4Pmi8czTNZH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "QBQWHsQ4LWd4fsTfj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:59"} {"_id": "zkR7f32XpPJ28sBZ6", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f :File | f.link in Trash implies link.f in Trash\n\n}", "derivationOf": "6DkfuwQAYibJzRpQS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 19:05:04"} {"_id": "MF4PtmwwtWmtfycoo", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies not f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "QMK9NXuF4pB6k9fiF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:20:11"} {"_id": "a6TkGo2roRogT2gkG", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "gmot8nRubFWBCTqpB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:52:07"} {"_id": "BxWYwa9bYzmSzLgGh", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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}\t\n\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": "jXenwjXekotpjCicM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:49:28"} {"_id": "34zEjspH4oT3J9NjQ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SxQHK8dZRq9f3wSGy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:36:34"} {"_id": "PPKRokFohRDkytrcx", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\t\n}", "derivationOf": "R8HNFJqPm5NavDEc4", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:37:52"} {"_id": "KznhFKgyHGfQMx5Bq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected and f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K5L6EPNub9yrzwm8e", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:09"} {"_id": "8mDHMdKAnZSSrfjyQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "Nxj53zgwQensicgFJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:18:13"} {"_id": "84NAncZNxcL8MMpD7", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.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": "vWwNZTJXfYgKF8pxD", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 12:09:52"} {"_id": "sHnatMzEhaHgdY6Hb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "fCPkwYQti4enXAtww", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:41:22"} {"_id": "j6kDW6Ji47W7Eu2WQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link \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": "sfqEvk889crbr3unS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:05"} {"_id": "B4u4yX9GQkZdFQTK6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:01:52"} {"_id": "3qq8tenSYKrbk9dMc", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "xYAYGTAt7CBSsC7k2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:07:01"} {"_id": "f9idRJiMddogdALsL", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tfile.file\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j59MMHESmPmctxfxL", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:44:01"} {"_id": "KxQomnTJ6aDtzRLaz", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y link and <->z in link) implies y=z\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": "jMsmtCLdq8Ljbh8Jv", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:09"} {"_id": "pyeyYrNBr6stkgtMH", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall g:File | f->g in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cx4vykoodrKSWpvNN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:17"} {"_id": "PiDKKG3ggftd9uQDD", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "gdMHk6u8DpzfDEKns", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:51"} {"_id": "j58NrbG4aCTpsEDm8", "cmd_i": 2, "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some F:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ykuHZbQKYYT8QjhDf", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 21:32:33"} {"_id": "gWtEWaGfuxHnTNoN2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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": "yfyuhcv9FvCoo9zcu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:47:55"} {"_id": "m9RcyazsnL9mKf29M", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File \n}", "derivationOf": "knGFg77mezZ8vCrMN", "msg": "There are 3 possible tokens that can appear here:\n, { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:04:28"} {"_id": "AdzpERzBhjKczX6AG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink [f] implies f not in Trash\n}\n\npred isLink (f:File){\n\tsome g:File | g->f in 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\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vH7bu3Tx42PRhr82J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:58:49"} {"_id": "vE8EPQW25Bdo4P3Wp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Yas8LHe2BaQvonWhD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:55:07"} {"_id": "ZwMxqoGQzDayuMipo", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "REzZh5W99RjL4a48N", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:46:49"} {"_id": "ffrhWZw4EsBrZxCvK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NvEs5BbDhHR3YsTyw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:23:30"} {"_id": "Zo7RvnNKqR3Nkyuio", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:18:16"} {"_id": "DD4ov972zW9Q6SAj2", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 in 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}\n\n\n\n\t\n \n\t\t", "derivationOf": "HYdm8St9DHHYGagP7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:22:24"} {"_id": "neJT3d3B6FHvw6swi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:32:09"} {"_id": "FnMnXfsyf7XNeKkmx", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | 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": "2MsQ4L3s8ELfAzSet", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:09:37"} {"_id": "aJhbdZ7kHtRCyzQ5T", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall x : File | isLinked[x] implies x not in Trash\n}\n\npred isLinked[f1 : File]{\n\tsome f2 : File | f2->f1 in link\n} \n\npred isLink[f1 : File]{\n\tsome f2 : File | f1->f2 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x: File | not isLink[x]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash ,y : File | x->y in link implies y in Trash\n}", "derivationOf": "eTRfRop99wxcAGW9W", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash: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}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "Trash:File", "visibility": false}]}}, "time": "2019-9-26 10:17:43"} {"_id": "KNysxmz3WP4YukmTj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\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": "aCjg9r95HZ9R44zXh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:09:13"} {"_id": "q3E3vCHWX9Zrw4MZq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "doLdbonPScXzPPTiR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:43:16"} {"_id": "3mi8vMz6GdDFKm6qS", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rwyyvmSdTDLk6c6sz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:15:43"} {"_id": "rp9apyBkEQ69ZSv6G", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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": "xjKWSiMzRTip8Zwed", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:14:25"} {"_id": "W6FqtrAvGtyjRDwBw", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all x,y : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZuCJEpS5LkM9vvCZ4", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:40"} {"_id": "fiwnirixMzsEnRHRb", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "C6ctEJhoY6NZevdPd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:08:57"} {"_id": "v3G9kiwXuaekT78qZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3nukaPjAxSveLFg8e", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:19:28"} {"_id": "5W2WpvEDQNE4irxSA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YRtNNpPtgFtc9iGqj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:33:57"} {"_id": "XW7h7M2up77PEePSP", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:file | none 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": "j52TybEw52BvwPgWc", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:10:26"} {"_id": "4nFiohNn22bcKsqHo", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |f.link not in 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": "bhKo2FMXF7RGWA8sr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:40:17"} {"_id": "JcsyoYEhnGEmyeRft", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall 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": "J8SA6gArb9qn4pWCt", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:25:36"} {"_id": "m3zmDoY5QBDDFqQkC", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "XkFt9frzACXTjHvZx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:57"} {"_id": "pW83dYXWkQW2mQZA6", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall x,y,z : File | x->y in link and x->z in link implies y=z)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "vEJ5ymJKL2w76eBD3", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:38:18"} {"_id": "G2Z7wXrbQf6RJPCwS", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall l:Link | l not 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": "JoK7WnwDtQmYsKKbf", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:15"} {"_id": "9v9JWaBYcRcBhusxs", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wZLhPesfWGNacMx7w", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:02:41"} {"_id": "CqzFvhnekHPgupoMu", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gNtbSJjThZGJPgs3S", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:27"} {"_id": "J2CPanTdQ59DmPFWM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink [f] implies f not in Trash\n}\n\npred isLink (f:File){\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uD7PHkbW9wyPF36kn", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:56:15"} {"_id": "5c6ZgrK45dsz3hiAs", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cBJc7gzgPTvsnZuuu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:13:34"} {"_id": "vnkfaN3zCn7jRJNQf", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | (x not in Trash) and (y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zJhgnmZsRinr7P5Li", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:05"} {"_id": "nFQie7AANH4GXgTMj", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tProtected in Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rAWtLCbNmuq8NeSKQ", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:26:04"} {"_id": "iB46GcxWLLYwc85k7", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y : File | isLinked[y] implies isLink[x]\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | isLink[x] is in Trash implies isLinked[x]\n}", "derivationOf": "mXeMMg6wrmWmfLLvb", "msg": "The name \"is\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:11:21"} {"_id": "YMTnDw9ybAa7x5e7s", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "HknRWHh5mienMg3xo", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:37:06"} {"_id": "6fkmpwTSHKuBk6keQ", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "ddWd59ZKSZJs8udqE", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-10-12 11:20:44"} {"_id": "cLrP5vAFhJRj9YwPM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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": "PYST5kEP9xtmaRdqG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:38:01"} {"_id": "KxCy42LKwPfq3pgH4", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1->f2 in link not in Trash \n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AuErcJecND253jWtx", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:43:42"} {"_id": "sRMsgd9ujBEMeXkgy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:42:55"} {"_id": "wACMt9RQw3wWF4Q5j", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "2fyabsWY9obwuxyfc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:30:07"} {"_id": "uLj8ZFwced2p4ZHnR", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f : File | f->y 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": "rayXdzqPvKr2wo4yL", "msg": "The name \"y\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:07"} {"_id": "FApfNfr85aKgemX8D", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f.^link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "jNPFRHGdbKAsxua2n", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:52:10"} {"_id": "SudghTt2e2MxfeD8v", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MewqYoShWxMYvAwDe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:33:23"} {"_id": "MDSkt7TYYtZCXDiXc", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | \n}", "derivationOf": "nuHWNeyidw2WX2khH", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:59:26"} {"_id": "NTBA33wPw3qxG9cBe", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | ((f1 -> f3 and f2 -> f3) in link) implies f1 = f2\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\n}", "derivationOf": "KkNjv8svcCpubngMB", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:25:37"} {"_id": "yuBWNbEGbcR75wx5o", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Trash | f in Protected\n }\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SSHNBFgStHA5E6dWE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:44:46"} {"_id": "dntEavc2X3fRKc6tf", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\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 \tno Trash.link.File\n}", "derivationOf": "zskp8CqqzgemHr8a6", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 17:32:15"} {"_id": "sDDFsLz6eXjnResFP", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "5pEPYDdN9HxEAJWgs", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:33"} {"_id": "yEsEw5DibLFkSL7F7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "aWdEsJLGoenyvjHuh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:55:19"} {"_id": "DPN6Q4Z9artLZf3QC", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iitepXsLSzpsW2PBC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:13:37"} {"_id": "MEkJdLLsGFffQ9NBK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | all p:Protected | f != p 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": "2mKQ7e58aXNZquvCY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 08:38:15"} {"_id": "HfFNsLYxTbjXtncS8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "iLc6NngT8C2rBEdbv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:42:10"} {"_id": "p6gnSLrkMMkfFZLJ8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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}\t\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oqXS8TijjSjHCtKpG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:48:54"} {"_id": "7jupeDkM2i3oRXfX6", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wvCY5sywijzqv4HT7", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:41:26"} {"_id": "qJFo49dqsNutgFyMh", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "esWA5hdQsbsPQPiET", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:48"} {"_id": "ftuWQhuEQEyN5rJxZ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\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": "3mi8vMz6GdDFKm6qS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:16:02"} {"_id": "L28NXGYXdXYMBo9Aj", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink(f:File) {\n\tall f:File | isLink(f) implies f not in Trash\n}\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TqTiWuNxfGQKZv4t9", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to pred this/isLink.\nThe parameters are\n f: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:56:04"} {"_id": "5JEmXGQiY3MWcarap", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NDqKzieGxqLfyNNRa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:33:04"} {"_id": "snTomXozM45zJmG7S", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n \tall f:File,t:Trash | t->f in link implies f in Trash\n}", "derivationOf": "ySHnkGYqriZybL3xc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:30:40"} {"_id": "g54wivaBBMh9iM6mo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yE3jdefmpF7uEkwKB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:34:00"} {"_id": "xCjo3AL2pKTG696Ca", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MPbd74ibsJ8FdJgYk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:47:12"} {"_id": "sZHdWQ7KcM2xNsXWE", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iKpKft24v5eKy8cp2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:36"} {"_id": "4exTufKdsZx6piC6Y", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "E3cBHn5FeLgsiPztm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:06:54"} {"_id": "vzJzB2TBAFQMwf5ct", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "ZRgCJopjk5umvsox6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:19:12"} {"_id": "j6awNWquqXAG6HWYN", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "GP5ouy7arsKPSEzLq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:53:55"} {"_id": "wXevEv2eHoAskEQq9", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "mAkSG8Qug9xvHe9LT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:09:38"} {"_id": "PkEbQsEqY3c77tWk9", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "uMuB8642LjFZu2DoZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:03"} {"_id": "rFcMGh9gSfpdybtnN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not in 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": "gqYLo9cgiq9hkhRp2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:16:56"} {"_id": "bnmW9Gs93RZZ2wbWL", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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": "FXXDyLzMHcEfMWZuE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:48:32"} {"_id": "XqohL6cFBQeb74KMi", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trasg\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XhNctYTLfsd2bsrPh", "msg": "The name \"Trasg\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-29 16:00:32"} {"_id": "xACxCpuBwBs2pSJ82", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n\n\n/* The set of protected files. */\nsig Protected in File {}\n\n\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "tQJdkBwunAr46cF8p", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:50:04"} {"_id": "o6Qr4TPuXc5bLwGqe", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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": "3huPz6RhQm8fA7qA2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:22:05"} {"_id": "4XCAbLwiYw6fvQioA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x -> y in link implies y -> z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kLmjxbtipvh2ALwmh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:29"} {"_id": "BXP6cNxxKHZ3MnvWu", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tno link.Trash\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\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": "ovPG9kKnRZcAdhxFJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 10:04:39"} {"_id": "DC5uvqKqsTWEYrpx7", "cmd_i": 1, "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:Files | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LJ8KT7yDgGYHgeyve", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 21:31:27"} {"_id": "EWTJunvX4Qw5hRvwP", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f: File | no f.link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wb78HjHSAtqGya2ed", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:50:20"} {"_id": "vyxZbGBbZzgDEqGkf", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall l:link |no l in Trash\n\n}", "derivationOf": "YFNfJovSzktev4ivJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:39"} {"_id": "oiqEnJEq3qPWTuGsF", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \t\n}", "derivationOf": "vvb93PqRm6GEwHPWE", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 470.3937683105469, "y": 265.3333333333333}, "File1": {"x": 470.3937683105469, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-28 16:36:02"} {"_id": "vvb93PqRm6GEwHPWE", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \t\n}", "derivationOf": "JhhHzE2p8rnmRJ3y4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 16:35:43"} {"_id": "yE3jdefmpF7uEkwKB", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n5PNajGBmBBR38a8B", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:18"} {"_id": "TqTiWuNxfGQKZv4t9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xT8ghrJK5XE8YwSdg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:53:55"} {"_id": "ZFcTjZGLc4286upef", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "2pibP38ykm2yEa6pk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:16"} {"_id": "9ZFASTMdXLnZogFDD", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z93mJmXXG7fvSd82Q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:05:30"} {"_id": "Au9sAR6tKjNXrk7Qu", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | none 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": "XW7h7M2up77PEePSP", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:10:38"} {"_id": "sSK95R33v7yWsbbHq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\t\n", "derivationOf": "cWF7gYmqkuDqQRws9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:10:23"} {"_id": "PhLxqsQWbkexA7SGs", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link implies f not in 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": "zPuspXu5kQCaHmbBW", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 09:05:46"} {"_id": "3vpQPDLorEdg7AMmX", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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": "ob7F9aBe4B7X5BkCj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:22:18"} {"_id": "7jCRPWLP89SZm7nuW", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n\n}\n\npred isLink [f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j8n7yA8nCiuY3hDiA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:38"} {"_id": "shdpRJhYyWqdXcYkZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall g,x:File | not isLink[g] and not isLink[x]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "MgvBomMMpYg45HAuJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:13"} {"_id": "vZ8Gpo8u2ydeya9Rz", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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(some File) in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NM3rP6cX2ypCbC9Qq", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:16:02"} {"_id": "D9sLzbgBsfrEqMoFv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:34:56"} {"_id": "wdyDui4CpPHoiLssL", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tsome f:File | f link File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YWCSqRZWRGQbgqJHr", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:25:39"} {"_id": "EyhRmBdqZepTjEy9d", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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\t\n \n\t\t", "derivationOf": "YKCFegBeYDjRSYwQu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:12:45"} {"_id": "PArkbmdSSb4rCdeqS", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "jPF5wy5YuuXgpdHEQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:01:51"} {"_id": "BTJRC3uyv3LgxTXCA", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n \tall f1 : Trash, f2 : File | f1->f2 in link implies f2 in Trash\n}", "derivationOf": "bXqAFFwaby83ztRZs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:18:41"} {"_id": "Thp6KmyfRisgvZrxh", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "JmvRSSEPBwr93fGL9", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-1 16:13:30"} {"_id": "Abk9imKzrSQAZXuGA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YMWocFaSjCfJ3vWTL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:37:17"} {"_id": "jZeizf9ZWtnAzdyiL", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "NYqAeRq44ycNrujS8", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:22:05"} {"_id": "u3mkkA8LHrFYenGCs", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:29:26"} {"_id": "pRr62jDwoxeYWseht", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y : File | x->y in link implies all z : File | y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PL9EY4GT8yqpBEniX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:36:19"} {"_id": "9Ro6t883swz66ph2F", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y and y not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jZ4hm8m8CJY6iKZwy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:38:29"} {"_id": "NqjC86bMbP66Tpxec", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "2W8dEZiRq27PjaMqQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:13"} {"_id": "kcK2PBDCtjdhM8MN5", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall l:link | link.File not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "sdBwYoKGxA33JpYdG", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:08:32"} {"_id": "XNLwYTfQW2G3NNKWM", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tFiles - 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": "FrBaMpLG4R4Pq6ewC", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:35:34"} {"_id": "SHNSYEFkeeCTcM2FD", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "JEzBa6CHnFmCfErjY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:26"} {"_id": "wCmph6MZKyP5a7Qwt", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | some 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": "JFhCumwTbRdKR8cez", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:12:15"} {"_id": "juNhnHAATiBGhGMTa", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Lo3J6jput6kS4YdKN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:49:37"} {"_id": "mEbEjCJ8PsrSNQkY9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "Ejw23W8sXQRH7w9gA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:40:04"} {"_id": "r8fuQDYgQ9RB7CWZS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:29:57"} {"_id": "W2wEicQEcgooQp9Xp", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "obaXeGTtfe9Yudd6x", "original": "sDLK7uBCbgZon3znd", "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": 524.12109375, "y": 199}, "File1": {"x": 349.4140625, "y": 199}, "File2": {"x": 174.70703125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Protected:File"}], "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"}], "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"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2020-1-18 16:27:13"} {"_id": "ovPG9kKnRZcAdhxFJ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\tno link.Trash\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7ECxzurZKTsdm9g6d", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 10:00:04"} {"_id": "u3T9HENkZhhBgx4Nz", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all f:File | all t:Trash | f!=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": "pyGqLZFmhSh4fh7QJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 21:40:05"} {"_id": "LzXq8EMfjParyaBur", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in File and x->z in File implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hu2scbdzwHTfnmZFL", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 14:50:23"} {"_id": "PApq4R4bXWWbJ3aHb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\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": "5W9JcGPsSqWCGCP2z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:13"} {"_id": "jQbiM6dTJCXq8hAzp", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "nRcfmuqeof5a46fed", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 22:27:18"} {"_id": "igMKeZAz3nbmXAoMD", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : Files | f not in Protected and f in Files\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZMBu3JDptCCZjb6W4", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:31:58"} {"_id": "SAQZNXTofc8yXjFYN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZZxQvbBHQdtuPtvcx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:59:29"} {"_id": "FXXDyLzMHcEfMWZuE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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": "hRewCcCjpBMWcG4RZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:48:04"} {"_id": "PyWBsckLpqz2JyovK", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in Trash.l\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gwNCEyFfekXrJeZyp", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:13:02"} {"_id": "YWCSqRZWRGQbgqJHr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PMwwLt367avmjwftT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:23:11"} {"_id": "QEPDT3hgFZ5usixJv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link implies (all z : File | x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "yKczy6yvL5bK6h5hR", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:28"} {"_id": "ztoku25Q3cJ9Nvuty", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6ypLJuErQQnSWAwqW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:31:33"} {"_id": "jg2rL8xv6xaHLCKpP", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hk98Ea53aHen8f9bk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:12:58"} {"_id": "cMEvJdX2DFe9H3ZqB", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "Zo7RvnNKqR3Nkyuio", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:18:26"} {"_id": "ErE2mzkuyDfoQFW7P", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "B87aTqYsGfTHx63Pw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:30"} {"_id": "EbBXg7fB3FfbBaGNe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D4CCcNuRm3yyfdp9X", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:33"} {"_id": "pbDsJayxj7brppxpQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xwoqAJd44uzwqSL3F", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:44:20"} {"_id": "EkwSQ6fHgBGsF4Kuw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CeLDWewQo2MMx6wai", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:13"} {"_id": "MzvaGoyiLZgjxaWSp", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in 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\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred inLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AdzpERzBhjKczX6AG", "msg": "The name \"isLink\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:30"} {"_id": "4E2S8vW72taiRRBqZ", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies x->y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EkwSQ6fHgBGsF4Kuw", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:47:28"} {"_id": "gKa3reErpfTiPepnX", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in 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}\n\n\n\n\n", "derivationOf": "K4ofMNaQffAYg3CNK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:41:35"} {"_id": "PsabkRKS5JWDnsuKP", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3:File | f1->f2 in link implies f3->f1 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "gxno6LAd85QNiMT8M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:37:53"} {"_id": "s9GySWHto8Wn2ZDpy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:30:01"} {"_id": "msW7BqjPR59bbfLEm", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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": "f7TigazWyz5jFbvkc", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:47:50"} {"_id": "WwSdxE23tHgtDG3PT", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProctected not in Deleted\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uYnRBr38mj9JvgSJv", "msg": "The name \"Proctected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:22:01"} {"_id": "nYu6zmFBkqBWM9AZn", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | x->y in link implies z->x not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, g : File | (f->g in link and f in Trash) implies g in Trash\n}", "derivationOf": "2pqyE44eazAYKur5N", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 18:57:57"} {"_id": "WxECtjNHDfnvmDg9j", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not in link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t.link\n \tall f1,f2,f3,f4:File | f1->f2 in link and f3->f4 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rFcMGh9gSfpdybtnN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-12-2 11:17:56"} {"_id": "jjYtrBNK9cmLikpdu", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MCMxDqci9KErDbXQx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:00:23"} {"_id": "HyGG49vfeqpQLogAL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall f:File | isLink[f] implies f not in Trash\n}\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "btRAGF2oEWqvnsN37", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:56:28"} {"_id": "tau9jxYhArCQ5vRgo", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "EjvWyc3wqPjYsigWB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:47:11"} {"_id": "ow4TFQe8AHYiDGXaj", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "ozjc4tPSpBiPx5abN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:14:32"} {"_id": "LHhL4E2v4EBrTiFg8", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "YQFMWy7MbbuFau6dS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:07:49"} {"_id": "p7yvG9QLzsFsArX2M", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\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}\n\n\n\n", "derivationOf": "5X5ThRYXPQ8JQqDC7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:19:40"} {"_id": "g2Z859YYE2Qj2YvSb", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 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": "Q6bt5zqgbSSdeR6NQ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:38:18"} {"_id": "gYpDjBs7cnCjExhtj", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 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": "W2LWRL7ujrrtksJtE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:14:24"} {"_id": "KLwzgo73uqqcXm43Z", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f not in Protected and f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all F : File | f in Trash and F not in\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6k8nLmLStDywf7x4k", "msg": "There are 23 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ disj fun iden int none pred seq sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:29:23"} {"_id": "cBJc7gzgPTvsnZuuu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jg2rL8xv6xaHLCKpP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:13:08"} {"_id": "sH7gdcPfWp63XmXPQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "68WBGK3oZ653EPTsY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:41:11"} {"_id": "rayXdzqPvKr2wo4yL", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f : File | x->y 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": "7d3x99n9gzhzjSM65", "msg": "The name \"x\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:36:57"} {"_id": "n4mwNww7pHHrYEg32", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "cWd3XkJF4W3Et3vA7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:17"} {"_id": "n5dPkpNkXLLsfL52D", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "cGM6qzKrxiq6kNon7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:03"} {"_id": "Ejw23W8sXQRH7w9gA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\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}\n\n\n\n", "derivationOf": "p7yvG9QLzsFsArX2M", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 15:19:50"} {"_id": "qv8j9eSqbRPEXqhEN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n \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": "rSZrCYb5nWAbadLd6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:20"} {"_id": "bEdk8sBn6TBxccwdX", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | f->g in link and f->g in Trash implies g in Trash\n}", "derivationOf": "NsuCYhiutF69oNzha", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:48:13"} {"_id": "fLQWc2GSSud9vhhPo", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "cqWY9mStNwufrpQSY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:40:23"} {"_id": "Aca8oXQMirKH8Jzhf", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y in link\n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nXRttZ2cuW9p3ETAo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:42:21"} {"_id": "hCZYm6cPmp36Aj9dW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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": "9Kn5fpMpquKevmKDn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:03:29"} {"_id": "LNoBFPwYTiHZsAGpg", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pstHNcKtoHzS6av7r", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:38"} {"_id": "YQ2pM2RyHKvMuoYzL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | isLinked[y] implies isLink[z]\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dCtkjPKaDqiBFaHsY", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:08:12"} {"_id": "4gwveFbfibHcs7c2M", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "za3mFoGQbmDmRaDww", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:31:22"} {"_id": "QHWqjWoxSKusHFLML", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "QS7zj3bfmsXLNd7yE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:03"} {"_id": "R4vxgtbKZmCBprqn5", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f,g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Cu7oa6oSL6bW5Y5p2", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:45:28"} {"_id": "ZAxEyqzsxSmsCH6zs", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "nANuLTYfhZsqjoPZg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:49:06"} {"_id": "TWzxyPeRQ9Y2FXG5Z", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c4P6JbXkvHzMoJzSM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:15:25"} {"_id": "tzQoN4rz4SeoqzuW2", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tt in Trash : t is empty\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": "ZTdHmSQoJt6ggESKj", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:10:35"} {"_id": "yTthvwK3Xbmyf2Mxz", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x link y\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YKStY8xKnJpeDrTfm", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:39:48"} {"_id": "ettAcZ4xRdazSSqGB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "yEsEw5DibLFkSL7F7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:55:48"} {"_id": "GXEGJ42ixpNeaWgQ2", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "TLhtLPQjB2PFeeH8x", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:07:30"} {"_id": "8eZ9tjd3WTKGSFdNA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | f1->f2 not in link implies f2 in Trash \n}", "derivationOf": "6unYBM89GC9vDRe82", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 16:23:02"} {"_id": "Qv44rZm74ter3k8KB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:23:29"} {"_id": "tXCagix5AtPisBscZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "WJkiby7xtz4idk4Qe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:13"} {"_id": "evhGLc8pmSMKQfZtJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MGGkWX8nmNgM4uQP9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:06:09"} {"_id": "P522xugcmT882h2xB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "j6awNWquqXAG6HWYN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:54:13"} {"_id": "dgsYuWvGL3Nt47uBm", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\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": "87JY5XhnjqHD9vkR7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:42:27"} {"_id": "WZgkKJ2k3qqB3eKgh", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "zzcoLSMfGrM9aj2gD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:42"} {"_id": "xNbsHH7o7hovjXis9", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qxHt4WS5Fbfj5XT95", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:08:16"} {"_id": "Fudf87ZaN7MXGm2Pz", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "uYygQC9w8MFgfz6mC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:48:09"} {"_id": "KY3zNBa3Qek2KWxym", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\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\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 no Link\t\n}", "derivationOf": "fLQWc2GSSud9vhhPo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:40:55"} {"_id": "2mKQ7e58aXNZquvCY", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "aBaNKFiSAWaNEshno", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:37:15"} {"_id": "Se73SKK5L49hcuQTG", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | (f->g in link in Trash) implies g in Trash\n}", "derivationOf": "kAy2sb4Apny9fX39J", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:46:34"} {"_id": "zZYMpW8bgqbrX3jLH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "SrkaSqAwtr2p4Cmq9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:51:00"} {"_id": "9g649ykNrpTRHXMCX", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\tall l:Link | 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": "bnmW9Gs93RZZ2wbWL", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:35:02"} {"_id": "nANuLTYfhZsqjoPZg", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "Fudf87ZaN7MXGm2Pz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:48:44"} {"_id": "RbqyHAZFGMHzpwNv7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "gBtcD8p5jxwiKckxb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:12"} {"_id": "SF4jhozR4SsocPL2Q", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y in File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M5rQPrMMmKEv2ChcM", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:16"} {"_id": "obEeMT2KjBDXJnqzW", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "cDyyodRjyG4icHqjy", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:46:46"} {"_id": "ygvZY8qC5KAdG6kMz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Df4SRSTrwG7CjfLwH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:45"} {"_id": "ZH2Zi5BqxxwSF3CGF", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g in link implies g->h not in link \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "WsNtQaBcHiTWskNry", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:18:00"} {"_id": "6Kx8cqLR3FD2x7pBF", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 Files | 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": "8dSMELmHi5iG9AAap", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:08:42"} {"_id": "jQofCGpuFTZTxitua", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "cGPQRRdQBJvxYehQc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 09:44:21"} {"_id": "fykvTqLngF9QFDrqn", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File | f.link not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "EjbWfjyRzLGvRS8dg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 19:08:51"} {"_id": "wYT38dLjYLhBkcu5D", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X39DuN5Pn339yhGHx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:14"} {"_id": "DRY8JECpkfaq8REoM", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KDrFcmjQTJ9G685nd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:02:13"} {"_id": "nSMzrzHasj7Z2YtGb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\tall f1,f2:File | (f1 -> f2 in link and f1 in Trash) implies f2 in Trash \t\n}", "derivationOf": "8cnxXwPsWRfy8LeN5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 19:38:10"} {"_id": "borpDdB6wmrCqGjet", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "BGFA6JNRRfGBxLqMg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:45:59"} {"_id": "sQP5YzqPxBTnj8YeT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3RqkJ8fim7RvNHZsD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-12 10:34:14"} {"_id": "gmot8nRubFWBCTqpB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:51:57"} {"_id": "gXyiJMgXFijQwoj9E", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "TE83do86MPK2LXMyM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:24:07"} {"_id": "2wb2FFn2z88t8Mbzj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z4raRNvknnqD9uanR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:15"} {"_id": "tr44iDrbFWY3sHkhr", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pt68EnmuyJWEm6aoD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:22"} {"_id": "nZuoQCSntkKFPtpy8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:15:01"} {"_id": "i2dWvQXmBxXsrsDAC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GiiSB5qSkzcpAFbML", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:03"} {"_id": "5tQHFviZdWKSMbnaH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | g in Trash and g!=f implies f->g not in link\n}", "derivationOf": "hfxhe4TEoy9eQyzCt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:58"} {"_id": "cN3MeCQwECnXbNWQB", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:29:58"} {"_id": "MgvBomMMpYg45HAuJ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall g,x:File | not isLink[g] and not isLink[x]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FNnMHRkD9pNhNmfeD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:41"} {"_id": "e3kphiPasvo6P2iTX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "46jGNpc3pjLGsTDzT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:44:17"} {"_id": "6BmGjA4MJSNLApzMc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:18:34"} {"_id": "smAT46MRWCEu5pE94", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:04:44"} {"_id": "e2Nw8MfBDtcyDg4nr", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall x : File | isLinked[x] implies x not in Trash\n}\n\npred isLinked[f1 : File]{\n\tsome f2 : File | f2->f1 in link\n} \n\npred isLink[f1 : File]{\n\tsome f2 : File | f1->f2 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x: File | not isLink[x]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "oBiYcWNowDm4h9Ang", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:27"} {"_id": "C5WDpc4NK555Z5Wuo", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZwEbt3dWGxir25MKt", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:36:29"} {"_id": "WpeNsnXidhGNsGwvt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\npred inv5 {\n\t\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": "E7HHHTTdNGwZbKXpS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 13:09:39"} {"_id": "mzNx64QZ7oh9CMqbp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wbrQxH9XqM2Sc6hkT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:01:38"} {"_id": "vvs46A5wwEQKbaEXa", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y in link implies (all z : File | z != x and x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "WWgjZLwDwXpf3gjbv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:34:59"} {"_id": "5X5ThRYXPQ8JQqDC7", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\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}\n\n\n\n", "derivationOf": "Z3Anwx66f7f5tG5zL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:18:49"} {"_id": "oFqCKMjQNpu6icPAo", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Yrbpvwgijtp4yGb8h", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:21"} {"_id": "TmnF2s8jNSbiio6ot", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "MXS9nvEYxWPAoHAyD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:06:19"} {"_id": "fYNi8ALuzJ5B7knsB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : 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": "oHkPrfrRDeFD57n4E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:58:40"} {"_id": "PjCEMtJd8jfpffFKM", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: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": "uRGxYjtyBbweg2EFa", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:25"} {"_id": "73qKMXmqENmdX7Y2t", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\ncheck (aux1 iff aux2) for 10\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "36fKNhYQMfoMxghS9", "msg": "There are 4 possible tokens that can appear here:\nNAME seq this {", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:51:59"} {"_id": "tW4FQ2wzTnLHLiwHL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "E8eQubZ6jfb4TqYqm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:23"} {"_id": "x4viA3CrdzjLkWetB", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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 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": "t5pY67C68mxwbabbT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-30 18:08:14"} {"_id": "jNPFRHGdbKAsxua2n", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.^link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "XcR3pYuyBMxpkcuCq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:51:45"} {"_id": "xSrBvrb5pRh4GjEwo", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\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\t\n \n\t\t", "derivationOf": "B9dWm5ZvaNWjJLzWh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:30:15"} {"_id": "zFa5zC4PH4yw9PNkw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XPdBwStoGEwWbY7Zt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:48:57"} {"_id": "z6rWtABZhkcrSPodz", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tt in Trash : t in empty\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": "tzQoN4rz4SeoqzuW2", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:10:42"} {"_id": "MXS9nvEYxWPAoHAyD", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "s4cCyoJpcZv4MC6ZS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:05:48"} {"_id": "iitepXsLSzpsW2PBC", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | not isLinked[isLinked[f]]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p6efHYhnEPcFynN6X", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:10:30"} {"_id": "ENKiDbXnENpvozMHE", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tifRAKuWr6taqobGG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:02"} {"_id": "2SYz3bDSyWDRCGsLQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oFqCKMjQNpu6icPAo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:29"} {"_id": "hj5sxHgeCfXuCec7z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | ((f1 -> f3 in link and f2 -> f3 in link)) implies f1 = f2\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\n}", "derivationOf": "jc5hngmhN3swhToMs", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:25:54"} {"_id": "cB8q6ncTq8Nsjcep9", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f,g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rurQLDtDyDAb2jFdf", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:45:46"} {"_id": "GHiWJwXqjLQEsdR48", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "evB9kBrzhQgWKff5A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:37:49"} {"_id": "isujLoNzPxwMpZKSD", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File , all x: Protected | (f != x) implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLink[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2mwZnew7hFCQ5Rejo", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:11:28"} {"_id": "WhucEYN7ycYGHiLe3", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "rhyzzJwHngBBHckAc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:03"} {"_id": "8BpGDJhyoXgXgcZik", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tnot link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "vCGF5t8at4AdCFXtE", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:22:39"} {"_id": "kcdeefkcqZrvWDjSK", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.link in File\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 no Link\t\n}", "derivationOf": "n5uBcDFiANmoCBCe3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:44:52"} {"_id": "FDisFEPhzSx6eY3sW", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g in link implies g->h not in link \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | isLink[x] in Trash implies isLinked[x] in trash\n}", "derivationOf": "x5DGh2bY2DmC2mCgn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:58"} {"_id": "6L8Feic5GvKEwTZAg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 21:50:07"} {"_id": "xwAmjXMg2TXXoKo4S", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one 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": "ZAxEyqzsxSmsCH6zs", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:49:58"} {"_id": "DouHu5MK7YKXZdvyY", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "cSJDaRfb4CWtXSc9a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 13:06:55"} {"_id": "CpC6GhftMGyyAyjjW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : 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": "KasmXeQwaicGMdtkw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:40:10"} {"_id": "ZHZ6LfcntsYhqdwec", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "gGhrwTXg7xTtt5PoQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:07:57"} {"_id": "dwccNzwgQm7eREomn", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "Lw5hnNujxhh3JE9Cu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-8 09:08:34"} {"_id": "btRAGF2oEWqvnsN37", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall f:File | isLink(f) implies f not in Trash\n}\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L28NXGYXdXYMBo9Aj", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to pred this/isLink.\nThe parameters are\n f: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:56:16"} {"_id": "HTbNpfNpGW8Y2a6Hb", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BR8d735kFHN47pu8G", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:37"} {"_id": "FBMqJBw8pv4tsxaA3", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gKG5dFEhDoupGQqzF", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:36:11"} {"_id": "XcfuWBYecF3NPXGrq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JWAHaKbHrfHvuhA8b", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:48:34"} {"_id": "iYszuuMKwvpCtWjKp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "fv7uxy4Pmi8czTNZH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:02"} {"_id": "kj3v3A5SsvvNcaFKM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no Trash.link\n\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": "Gy3TeRoZzkM3ZPaKJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-3 09:56:14"} {"_id": "tKpS8Wgq2AePTCuWX", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies no g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EsXSiRtaqbLr5piJY", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 14:53:26"} {"_id": "nXRttZ2cuW9p3ETAo", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y link y\n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PZHhhmzroroDDzgPX", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:40:37"} {"_id": "JKQAzfXvjkw6CTcHw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C5WDpc4NK555Z5Wuo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:45"} {"_id": "8EKbuLBmWdmsndW55", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash \n}\t\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\n}", "derivationOf": "h5BDC6tEL7EGQHZBx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:03:28"} {"_id": "Xov6smfKe7H7ppf2f", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2 in link) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "i5fQeMqbS2taNCNqr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:11:42"} {"_id": "qReRmkeN2WibkXwaG", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n \tall f,g,h:File | f->g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6JespmPkatKv7T9Pf", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-4 12:29:19"} {"_id": "eF4zb49bAibjDtZvm", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 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": "wdoaxriWmgLEfcihj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:16:04"} {"_id": "QYwqBE6deEZZDPi7A", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 21:41:09"} {"_id": "8eytXMoKqhf5FNweR", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DRY8JECpkfaq8REoM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:02:18"} {"_id": "hMazxcZNYTrFtTcQ4", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "goB36ntyvpENjzGe9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:42"} {"_id": "JCwM3343kvfQhyZNa", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YxGtpN5hi6E8g9Dvb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:11:55"} {"_id": "ngNLuAGngGWh5M7F9", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pywXPP7Ds3tMv3QzK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:09:36"} {"_id": "MaknrYpHxqASR2Tjq", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:file | f not 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": "SXKbqFTP3TkZtHXZJ", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:51"} {"_id": "7pudG3xqPFp2hhp78", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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": "4dY27PaHzSWLXzqEk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:54:49"} {"_id": "yqnphzzZvfKDFm3ra", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WtRkfqwhmbxD3bwdT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 10:02:49"} {"_id": "vRJx33RZMhnQeLMCQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JE8Lf6TXoqG2dph3t", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:07"} {"_id": "w2pHmhwe3RDigGdSe", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not 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": "TaY6dpbjnqDbHdNSv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:01"} {"_id": "y2hrd8ZTyqCbyE5eQ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nsome f : File | f not in Protected and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rnfZYAghFzXFzaurY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:35"} {"_id": "WsNtQaBcHiTWskNry", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g in link implies g->h not in link \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | x->y in link and x in Trash implies y in trash\n}", "derivationOf": "yCa3uy8wmevSC8F2W", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:17:54"} {"_id": "n6hAWP4vAc2PQkSFN", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "zXLRJYz9ikPcuXamb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:48:23"} {"_id": "T6WR4dtwFjcybWQkD", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mzNx64QZ7oh9CMqbp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:01:41"} {"_id": "pif7XhyragmmprgTx", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\npred isLink[f:File]{\n\tg:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gWXQCGLNa9vrP8CrA", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:36"} {"_id": "dsrtBJjXmpvYz3tFJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wksGHQzFBhqXjiCHW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:55"} {"_id": "YRtNNpPtgFtc9iGqj", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WwKpRh2ZXbmYjJ2d4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:33:53"} {"_id": "L5hZfAGnKzf9ngR3s", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not 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": "jKWjPnm22ML6hd7f5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:30:59"} {"_id": "GfnLs9wcb2YL4cyF4", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gL4osjS44KiRBXLEz", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:50:14"} {"_id": "aM5HHng645mMNi9bP", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jMCm9XBh87R9krd3G", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:35:21"} {"_id": "JhhHzE2p8rnmRJ3y4", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | f1->f2 in Trash implies f2 in Trash \n}", "derivationOf": "8eZ9tjd3WTKGSFdNA", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:27:37"} {"_id": "c3sjACWkaWeFM48mA", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7YbFZfEpswgeF3yYD", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:48:52"} {"_id": "wCuYhRWj49rEvrhz5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n\ncheck {aux1 iff aux2} for 20\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "kvSkcctTsjkdAXHM3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:53:36"} {"_id": "AQw4RvdJZqttdv6yh", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hdLAqyyX2PXw7cKQB", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:00"} {"_id": "hRWQ5p5rxuGZaKeDW", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\npred isLink[f:File]{\n\tg:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wdD52fivqxcnMcFdb", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:15"} {"_id": "5j8YiPRjBy2LWQy4f", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TkMMMcfcKxRzfSwih", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:58"} {"_id": "WrLyGuewbrxtJPzaZ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Kc6fcxqmtCN4kmEyh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:05:33"} {"_id": "9AjEE6CWTSbnqwDgh", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | isLink[f] implies not isLink[f]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall g,x:File | f in Trash and \n}", "derivationOf": "u5YDSpJfEc2F5jscY", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:14:47"} {"_id": "jAKhmjCpEvhmZu9t8", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2 in link) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | isLink[f1] and f1->f2 in link and f1 in Trash implies f2 in Trash\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-10-31 13:49:57"} {"_id": "pQGtWPqom7ZztPXpB", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "KDJQFT8xPPWi4sLJR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:23:48"} {"_id": "n72y48i5j3BWHLygT", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "PBvQ2EsGQZJHebRpS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:36:03"} {"_id": "Xfwuw8W9MQtsCmkWw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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": "ngE74RzL8ika9vPvA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:08:11"} {"_id": "zSR8pAczCfnTyXcP4", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NqxCy7Dx6vYi5emBF", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 364.16668701171875, "y": 199.1666717529297}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-1-7 19:46:51"} {"_id": "PMDrWRKexctxsyNiz", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | 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": "YPbRwpWR3n9MYxuns", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:01:15"} {"_id": "zJhgnmZsRinr7P5Li", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rJrk3pc9ywN4kKLKi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:07"} {"_id": "CzLx9vkC68q86PneB", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7NhaQTtKQwwgecMny", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:51:28"} {"_id": "ZzDyECEdsPf9AFuXF", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n\n}", "derivationOf": "og8Mov8EbJnGxE9rN", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}]}}, "time": "2019-10-2 14:54:42"} {"_id": "ApoqN4SfNurCXEkAc", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: Files | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ew4EjdJ4gXhfjHhtT", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:17"} {"_id": "RjqW6sxZpZ9pW4HdG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "FE9gox7Ryimq3yxpq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 14:48:28"} {"_id": "obaXeGTtfe9Yudd6x", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "KxMarMJfsoC2yQbsf", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:25:34"} {"_id": "gd2fo7k63wCqQqTfo", "cmd_i": 3, "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all f:File | f in Protected implies not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YvR5egoWhZWk4LKwr", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 21:34:02"} {"_id": "A2hQbryfRQb8MmuTH", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3:File | f1->f2 in link implies f3->f1 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "PsabkRKS5JWDnsuKP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:39:37"} {"_id": "YMzgFvAgeThiRX3CJ", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "azkD57nxdzoeBttmF", "original": "sDLK7uBCbgZon3znd", "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": 360, "y": 199.16665649414062}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2020-1-17 22:50:38"} {"_id": "Y28nKKdtuZEGjzQ4W", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link implies g->h not in 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": "rDyrcyKNDTzEBmmN8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:56:51"} {"_id": "oxx49YDujb9ZStgfR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File | link.f not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "fykvTqLngF9QFDrqn", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 19:08:57"} {"_id": "pozAEwPAQCK4ktopF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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": "AKENbDSAeM8SJh7Fr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-3 09:27:04"} {"_id": "DXcTjCXB98uSi6qzs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hn2HhM5heGRqKDgSP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:50:50"} {"_id": "rhyzzJwHngBBHckAc", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | f->g in link implies g->f not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "8NEG7DmNu4b4noXba", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:15:45"} {"_id": "zLWfB2ogtzaprFqP6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bTHhvxxBnSxejFHXz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:41:05"} {"_id": "xxZ2ueWMC87EGvWbQ", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : 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": "2x9Ku6jhy2r7ckcYP", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 23:08:24"} {"_id": "tvCDxkBijWsqmdBwB", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 -> f2 in Link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "BnZgCspmGFrNbTPpw", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:34:02"} {"_id": "aPBuctciLmXaa38r4", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PDkaGEuL89jBPA8qF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:23:05"} {"_id": "H2ehFRdgxTzgNcSA6", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "6sxYftczahE8CByfM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:33:16"} {"_id": "hn2HhM5heGRqKDgSP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "ANNSvGqyYHewvzm6G", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 10:50:27"} {"_id": "GKTJYvwQCYoHaYrTK", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 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": "8gGsjivmfhyh5ZjA4", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:41:47"} {"_id": "imtvDKp7RQuRHobFn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dmeX7HmKqbHzD2F4P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:49:43"} {"_id": "ogg6YEoGjisn3kk3w", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "7K3Xv9rpG3sKD4PuX", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:24:04"} {"_id": "knGFg77mezZ8vCrMN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hSuT8kZYQaCBn5vxg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:39"} {"_id": "MKCuiR2BN43BpmQzQ", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlink\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "f9idRJiMddogdALsL", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:44:18"} {"_id": "uLPBqpvQwij3LpDKj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1 -> f2 in link and f1 in Trash \t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "Kbomc4NKFuXCKzhYT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:41:24"} {"_id": "4cTphGr7hpobJfsS6", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F6QXRCWRXQuihkutj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:06"} {"_id": "yfyuhcv9FvCoo9zcu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iFmtS2RHoG3ji9F9X", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:47:23"} {"_id": "DtHFoBm4QjD6zeSwT", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F3t6hoBrb3jpHtFr8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:12:48"} {"_id": "gKYvvAXC8Ngh5zmF2", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "AGK3GEfHmsS4MkhDD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:07"} {"_id": "NmnoqheX7n5dEeYFT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MEkJdLLsGFffQ9NBK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:39:19"} {"_id": "QriFt55sQ2YrmQXbN", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zEy9RsxLqbEnjQu3j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:13:43"} {"_id": "gEhjxytAJhK2eHJHM", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n\n}\n\npred isLink [f:File]{\n\tall g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7jCRPWLP89SZm7nuW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:59:50"} {"_id": "5pF7A9e4rRnGANDsa", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "J4Qrf8Yuc34nJYSo6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:47:56"} {"_id": "omN99eKrcq3kmNw3a", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6iWk4GXupRS9BjBDm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 23:12:14"} {"_id": "4njAPDWSSZzeEMmLN", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "XyLk4QF6ErXkZ4ATg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:29"} {"_id": "9ETd4ygpHyRn3HDu6", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | (f->g in link and f in Trash) implies g in Trash \n}", "derivationOf": "z4nzBAf7NiS2qk2sJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:08:16"} {"_id": "ZWgg942ABo4QfJ3Nf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "N8uBdMY8MFMf3ib7Z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:59:01"} {"_id": "j8TQDseE73oRvudq3", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YPuxCMnLAs3ndLE5x", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:32:38"} {"_id": "GeRzheZpBmrJhLiBo", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GsEXRkmsx7jpZzr6Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:22"} {"_id": "yT79kuAvrW9yRz7rL", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-12 16:31:43"} {"_id": "nZQXAKb65E9rBKgEd", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2dxL9GzDAzCwfg6Wt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:53:40"} {"_id": "KodQPdug2zYoL6FyQ", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\tall f,g,h:File | f->g in link implies g->h not in link\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5THneTQKTrTaHRWrY", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 16:40:33"} {"_id": "P2MMSf3EhYgCfvdKc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:06:24"} {"_id": "4fdSz5D3Tdf8WxHrZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:Trash | f not in 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": "duDrY3asmqXWmw9ws", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:25"} {"_id": "odzABvzbKR2nvApTF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "mEGQefgHtGHNFmBN5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:01:03"} {"_id": "J6BmcqBKWq3gTbwZS", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Gp72zy2o2eKdHq7jx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:31:00"} {"_id": "iEMpeQ8KgiNAGCf4d", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qFXFx6R8B74HoGjJd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:37"} {"_id": "ykuHZbQKYYT8QjhDf", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kSdTvm6mbma8Mx7ML", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 21:31:58"} {"_id": "CRBRSqQY9jrakYdfj", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |no f 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": "u5awpkCRErxt6GLfa", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:39:08"} {"_id": "mWtfrNt8DPxGNRYfp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YndNnaigedyGcw9pR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:58:49"} {"_id": "s9aQZiMmYmh64gu5A", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qcFFcC72zD4RKik25", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:39:36"} {"_id": "p96Ei32wpuAo3LnBd", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "aZXfuxaJrMhAs8pKA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:38"} {"_id": "F3t6hoBrb3jpHtFr8", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wCmph6MZKyP5a7Qwt", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:12:35"} {"_id": "hkdw3Arwqmb2ZMgQk", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | (f1 -> f2 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}\n\n\n\n\t\n \n\t\t", "derivationOf": "TX7RWqy3bftXWCEsg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:33:40"} {"_id": "BHBnngTJpQkRZEBHh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:23:53"} {"_id": "P7yBLn3Cz8SmW5LAv", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f,g : File | f->g in link implies f not in Trash an g not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | f->g in link\n}\n\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zd8pxRipmZWwzx7oi", "msg": "The name \"an\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:14"} {"_id": "WWgjZLwDwXpf3gjbv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y in link implies (all z : File | x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "EtZCHSTh83ziHY9ii", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:59"} {"_id": "LvwCZXuD7TpESMBzH", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | (f->g in link) and in Trash implies f and g in Trash\n}", "derivationOf": "fzS7ipsYg34uSycNq", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:03:26"} {"_id": "vmqgqRsyep7RDM7JZ", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall 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": "TAMaz56jFqdaifuvC", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:27:47"} {"_id": "3jjusNz3QM73jrfj9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2cmvk7SMjMLDF2Wnw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:49:58"} {"_id": "2p2YGJS9cjrj6WsEN", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | some g : Fle | f->g in 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": "EacNS827XbwbqL49w", "msg": "The name \"Fle\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:47:58"} {"_id": "7KLYsntCPYcYBScbh", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "t7sCNeSp44k3jffuc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:25"} {"_id": "rSN5XeEc56ofKRh87", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "mxcoRPm5Wo3rCZzs3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:42:15"} {"_id": "hLkS22YbKFeifWNoz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DnHuNr2LsxDq9vi63", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:01:00"} {"_id": "hkxiiFWXBruMY7rfs", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all 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": "ANhwnqu4CyvwARAvM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:37:42"} {"_id": "Jb6yFSwzT4JkXvZET", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KjTuL7tySBk7ogFcY", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 17:12:38"} {"_id": "Xno2kmj4jLFpYAvwP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "gKa3reErpfTiPepnX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:41:40"} {"_id": "jmGv2FTaDjEefso8A", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "agyqpNGitDF9T4ZkS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:06:37"} {"_id": "MCSxs82rmRvxjjdTK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Qv44rZm74ter3k8KB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:06"} {"_id": "xYAYGTAt7CBSsC7k2", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x3xvp4Q6BLHNSZHBH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:06:38"} {"_id": "qzXznhof4Q72xKi4v", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not 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": "G7PMd4pikwGsF45EN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:00:51"} {"_id": "7pBAqWkrvHiPr2nts", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 | line 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": "mHAfPLHoQ4tL7bGWw", "msg": "The name \"line\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:38:45"} {"_id": "iKpKft24v5eKy8cp2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oeMdFZT7TCJibzBdv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:07"} {"_id": "7WG6SXSwGq4f94eTQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "wQZXhn4XRDnEB2dfi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:08"} {"_id": "6WnMyPE95m8YbNomv", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\t\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": "s9aQZiMmYmh64gu5A", "msg": "This expression failed to be typechecked line 52, column 2, filename=/tmp/alloy_heredoc15229892468282050137.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:40:18"} {"_id": "eBcx6tMnZm2Jo6AgH", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File | is_link[f] implies f not in Trash\n}\n\npred is_link[f : File] {\n \tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "yNYD9bx3z7HsS4dSm", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:55:55"} {"_id": "yqKSEnWGKdE8wEYQn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jb6yFSwzT4JkXvZET", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:12:50"} {"_id": "shjfvnyCjEvmDRBkk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "zY2Bd82B33rwjAhWm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:41:42"} {"_id": "QF5ArJJY4AyoABiJ2", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File| f->g in link implies g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "3fPHvgdKHd6bg3PNQ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:50:06"} {"_id": "TKWs9FQEnyHEtesnP", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "QqTMgakhZLaphLEdX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:00"} {"_id": "KQdapWn2yW5gzaCzW", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | (x->y) implies (x not in Trash) and (y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vnkfaN3zCn7jRJNQf", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:01"} {"_id": "mCRXdWLZ677qW7KqB", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "4hkpZXYfyuA5jFkQJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:48:28"} {"_id": "zPtaEhHXv7oMeFmm7", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f:>link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "nqq5TZC9GPXkvizwZ", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:46:05"} {"_id": "wbrQxH9XqM2Sc6hkT", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BgT5CztjpoC4tixF5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:01:34"} {"_id": "66y3wZHCuojdvbvbB", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \n \t\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n \t\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n \n \t\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n \n \t\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n \t\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \n \t\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n \t\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n \n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \n \t\n\tTrash.link in Trash\n}", "derivationOf": "Wd835uR9xtNNJfYjf", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 444, "y": 265.3333333333333}, "File1": {"x": 444, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2019-11-2 15:17:56"} {"_id": "pR7bQPwopPGxpSMqP", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:12:08"} {"_id": "HWvSxcsrDb5XvYCFn", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g in link implies g->h not in link \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FDisFEPhzSx6eY3sW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:39"} {"_id": "6unYBM89GC9vDRe82", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | f1->f2 in link implies f2 in Trash \n}", "derivationOf": "M5csD2dw2M5zrQjPB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 16:22:51"} {"_id": "tQJdkBwunAr46cF8p", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n\n\n/* The set of protected files. */\nsig Protected in File {}\n\n\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xqxSBaafmCHx44B2q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:49:47"} {"_id": "YTSDNTcbSRcXnrXD6", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "quqryNMc9edEMaFdS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:46"} {"_id": "uYnRBr38mj9JvgSJv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \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": "3YsMQDB7gPnoohXge", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-6 15:21:57"} {"_id": "4CJabpoX27ws6Ji4k", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "sXwbWtEqPS5q7JxRv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:44"} {"_id": "WtRkfqwhmbxD3bwdT", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ftqMDKyuK6fdipFyh", "msg": "This expression failed to be typechecked line 72, column 17, filename=/tmp/alloy_heredoc13007568536493132551.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 10:01:49"} {"_id": "b3AZdsdPGqyG3Drnt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BHBnngTJpQkRZEBHh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:24:57"} {"_id": "9gtaEpfgayqSq6Co2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "obEeMT2KjBDXJnqzW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:47:08"} {"_id": "RbbwgmWu7Br86u3ft", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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 \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": "Lc4LCJh2LdMY7b397", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:11:22"} {"_id": "KtjjAraL2FdgXXvha", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\n", "derivationOf": "mEbEjCJ8PsrSNQkY9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:40:38"} {"_id": "Zf9DDxiCWTDFvBDs8", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "twB92qPDBHzzrict8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:31:49"} {"_id": "dipNgHoegW7PLaKGX", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tDeleted 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": "ERMrxRmE3222LhhvC", "msg": "The name \"Deleted\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:22:35"} {"_id": "shJGKXkN4CBoHaRTC", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Files and f not in Protected | f in Trash\n }\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WFpwQgpfjxpn8naEp", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:48:14"} {"_id": "eQ23fmqFd8ycuEq4r", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:28:42"} {"_id": "nRcjz3sY8FCyYA8ZA", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YAoafBF7Z52Ch8Xa8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:32:05"} {"_id": "Df4SRSTrwG7CjfLwH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2SYz3bDSyWDRCGsLQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:40"} {"_id": "REzZh5W99RjL4a48N", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yqrCvFDymnvAc3t4C", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:46:34"} {"_id": "xc5wYLHJiHnudBcto", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3adbr4ShB3iFQFck5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:45"} {"_id": "JF8eTDSuw3Ye4KBwL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\t\n}", "derivationOf": "3KoA2cW92tTrYJsLb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:44:48"} {"_id": "gqYLo9cgiq9hkhRp2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not 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": "eF4zb49bAibjDtZvm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:16:30"} {"_id": "5mBeS3Me9G2L7hqcx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2 in link) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | isLink[f1] and f1->f2 in link and f1 in Trash implies f2 in Trash\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 21:26:39"} {"_id": "BR8d735kFHN47pu8G", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wYT38dLjYLhBkcu5D", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:06"} {"_id": "pyGqLZFmhSh4fh7QJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all f:File | (f in Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vEQLLDkGsiMt9kYED", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 21:38:59"} {"_id": "8PZctExdiWY6pYfkw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZmPczJ55eCFhaeC2Y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-21 16:33:19"} {"_id": "6YiDW4nsDN9CTmJ9S", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "Q5ZTMFvvpxudFuRTo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:15:56"} {"_id": "Rnu3ZShXbcyt2kPTD", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\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,g:File | f->g in link implies g in Trash\n}", "derivationOf": "HtCJNzwRGKw9RaRGo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 17:18:54"} {"_id": "jGJfZSd9qasP7MxbS", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "smAT46MRWCEu5pE94", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:04:58"} {"_id": "qPXh9C3ab87H2TNs6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ApoqN4SfNurCXEkAc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:33"} {"_id": "38rvY57Pfm5eYXkAa", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n \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": "SuaX7TcQ7PZ42CJj5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:36:33"} {"_id": "ay2aag4zpLmWAga5J", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "q3E3vCHWX9Zrw4MZq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:43:26"} {"_id": "D7BNNiYHuBzmkqW3p", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall 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": "eNfzGDRMEumcRepnj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:29:39"} {"_id": "segMw7o4yTkvF5Ytu", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GeRzheZpBmrJhLiBo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:47"} {"_id": "PXMxjixjpP2EZSLgy", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:file | f in Trash\n\n}\n\n/* 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\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "RjqW6sxZpZ9pW4HdG", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 14:53:21"} {"_id": "49RARaB5onhMYNiyY", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2WCryDNcGsvbrm5Rj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:26"} {"_id": "RnNkw2tuHLadqw8Nk", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 : Files | 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": "6Kx8cqLR3FD2x7pBF", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-1 08:09:01"} {"_id": "ga4LLu8mY23sL4doJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "9Xy4QTb9qxypZdFwa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:17:19"} {"_id": "QgpLLktk5tZ2t9vha", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "ZHZ6LfcntsYhqdwec", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:08:13"} {"_id": "XNfPaLduNcuzQqh8X", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall f:File | f->g in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SkqZQgozcD7JkyX2e", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:32"} {"_id": "d7X9Ko3s6drLN8STW", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \t\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\n}", "derivationOf": "ErRg475CussaEo5sH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:14:09"} {"_id": "7rJ7NukJZNrxXxN3H", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\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": "fapgacfaAsqcGqPGB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:20:40"} {"_id": "eTRfRop99wxcAGW9W", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall x : File | isLinked[x] implies x not in Trash\n}\n\npred isLinked[f1 : File]{\n\tsome f2 : File | f2->f1 in link\n} \n\npred isLink[f1 : File]{\n\tsome f2 : File | f1->f2 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x: File | not isLink[x]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash ,y : File | x->y in link implies y in Trash\n}", "derivationOf": "e2Nw8MfBDtcyDg4nr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:52"} {"_id": "RvbXg3JTebrZGP5hB", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\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": "EK6MQHonqTgj9isH3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:16:24"} {"_id": "kdw9f7TYMTpm37ivb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g :File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ar8gTmMs29vWMbho6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:50:25"} {"_id": "gtfWNieQ8T3vRhRmp", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:file]{\n\tsome f:File | f->g in 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": "KQdapWn2yW5gzaCzW", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:01:45"} {"_id": "NbXiWrPLrMtM3ekPr", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nRcjz3sY8FCyYA8ZA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:32:25"} {"_id": "wuyjkz95zkpZMBpaE", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "xxQzSthKSmtfGWuBc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:37:00"} {"_id": "TpbP5uEiKt4kigGFN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall x,y:File | (x->y in link) implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gRotsoXLg69uhWa4X", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:52:16"} {"_id": "5pEPYDdN9HxEAJWgs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "Y5qzE2CbkZaSuJ72o", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:27"} {"_id": "JEzBa6CHnFmCfErjY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "Bu3MC5Pfms22M3F5y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:24"} {"_id": "XPh9ZDFMe8iBtS3jW", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash \n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "mBN8uSF27Dxv6429M", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:55:21"} {"_id": "a26EnZb5nRk99WFbH", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "yMxt9RocmpoNcSZYS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:38:09"} {"_id": "o22q24zd43mc8k2kF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dipNgHoegW7PLaKGX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-6 15:22:44"} {"_id": "Go9cS7sZ2suTRNvJs", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p : Protected | not p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XJEiWgqKwf4CXFui9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 17:05:29"} {"_id": "6iWk4GXupRS9BjBDm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ngNLuAGngGWh5M7F9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:10:24"} {"_id": "24vukzxcDfArxDQYt", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f,g : File | isLinked[f] and isLinked[g] implies f->g not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\nall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "8FoSn5FEtsi6sdMvF", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 524, "y": 265.3333333333333}, "File1": {"x": 524, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Protected:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Protected:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Protected:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:05:11"} {"_id": "zEy9RsxLqbEnjQu3j", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:13:26"} {"_id": "KEXvzmkvosGWE6HYg", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f :File | f.link in Trash implies link.f in Trash\n\n}", "derivationOf": "zkR7f32XpPJ28sBZ6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 19:05:26"} {"_id": "ejL95jQXeKxpZZCXg", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File,l:link | no l in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "86uw8qY8gLYDKTRHy", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:58:46"} {"_id": "88po5Ly3NjywEMnkk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies not is_link[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n9eFvnBE8YseAxed2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:17:07"} {"_id": "Mojm2x4bHEF4Jkvpa", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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": "3NTF7AkqSw5MaywTG", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-1 16:07:16"} {"_id": "tYtLoW2BbZAnM7jSN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "tau9jxYhArCQ5vRgo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:47:23"} {"_id": "7ibqpgEtaTYcuA4Dp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "sB4rSrsyDKksb5GnD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:22:49"} {"_id": "zskp8CqqzgemHr8a6", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\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 \tno Trash.link\n}", "derivationOf": "Rnu3ZShXbcyt2kPTD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-12 17:32:00"} {"_id": "HGxyYGy3JbyQCmoXM", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t49XbgTK7CBrbdpxg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:03:56"} {"_id": "npP5DSwX5evhbiBLk", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 21:51:15"} {"_id": "NhZHpGKGCm84ujR6b", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "rxY2rrWxLpH7EqQtb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:33"} {"_id": "Z93mJmXXG7fvSd82Q", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n some x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "syAJMRbwrXzX44r8j", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:19"} {"_id": "Mr7KngN8DKGbq2XFS", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 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": "hNej5R2woqBSZ3s9k", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:42:13"} {"_id": "Bsm8iyEcnzujMCdXR", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \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": "v3G9kiwXuaekT78qZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:19:56"} {"_id": "DZPdDfjQe9wcoe2ov", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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 File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tall f1,f2:File | f1->f2 not in link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "zgF76QaXK2DRhJ7HQ", "original": "sDLK7uBCbgZon3znd", "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": 199}, "File1": {"x": 444, "y": 298.5}, "File2": {"x": 444, "y": 99.5}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-12-2 11:20:41"} {"_id": "tTDSikevEmYDHP2mD", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f :File | f.link in Trash implies link in Trash", "derivationOf": "JztxEz7qMAf524cb5", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:04:17"} {"_id": "w3Mczj3jfGPJFaF96", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PyWBsckLpqz2JyovK", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:13:39"} {"_id": "9qTvaYbeDJ6xL4KkW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all p:Protected | all t:Trash | p!=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": "u3T9HENkZhhBgx4Nz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 21:41:01"} {"_id": "p65qFAiBZAkECnz5S", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f in link implies no f in .*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "QuxqXYNDNxqtXDtwx", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:20:57"} {"_id": "n4RuQquyFtDXSrQaF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \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}\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": "AnDir2YciJM9D2B6Q", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:10:10"} {"_id": "rFjRdq6ACD3FA8xxu", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g :File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "ZAdZihGy4EPMrHG6k", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:52:52"} {"_id": "e6hnjo5n6W9f7ALHm", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f->link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "ZuLESAZS9Z52gjsdX", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:47:42"} {"_id": "p6efHYhnEPcFynN6X", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ichfqFyckcTyZ5QjF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:59:23"} {"_id": "JMek4nuMw9TpbSCoe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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\tall x,y : File | x->y not 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:02"} {"_id": "xqxSBaafmCHx44B2q", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eixp6ZiCXxpRLXCk2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:45:19"} {"_id": "RBge9DDRDLo4qosbE", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GmJvuWRBmSvkLarWd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:30:56"} {"_id": "5dJuyydJaZp6WeJM7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\n}", "derivationOf": "G9evgT9BkiR7gwg4s", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 19:06:56"} {"_id": "h3x4xwJTt69GxonTt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "6TRjk9D2aW8uJXLdY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:05:57"} {"_id": "qnK6oBzEpjm7uvoY3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x3TvuGdG48shXopEj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:35:35"} {"_id": "eFBgJumkmwxoJhN7h", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g not in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4qxTkeowaLdAdQtNa", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:25:33"} {"_id": "MqrJtgsBuoynwdhp8", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | f1 <- f2 in 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": "kpXR7tYM3Bcg58ydA", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:18:29"} {"_id": "2cmvk7SMjMLDF2Wnw", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZDB9TuSjqm29s6Bve", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:45:46"} {"_id": "SrawLAfoGEGPrc8tv", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f | not is_linked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "ddQLhXyYmCPhBMo2A", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:03:43"} {"_id": "Kbomc4NKFuXCKzhYT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\t\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "xeWecLfgcCZjsiJDE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:39:12"} {"_id": "nJacno7WQsaEvZFyX", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "dF8Cc3W6KPJmNFhgL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:33:10"} {"_id": "KNaBP3kRKDkGuDxNn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "3PZRjHSpQGYcCznpH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:11"} {"_id": "vZxJtKd8kDGiSFnnh", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\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\t\n}", "derivationOf": "JF8eTDSuw3Ye4KBwL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:45:05"} {"_id": "gH9hJHG8eu46oQ6eh", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "p96Ei32wpuAo3LnBd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:18:55"} {"_id": "JoK7WnwDtQmYsKKbf", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File and not Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z2aLKrgLu3mDMqNxr", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:19"} {"_id": "rFLGiG4CQ9QytbWup", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 -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": "e86KZBGMH4JhsfEru", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:47:24"} {"_id": "FucRTifnYgwbXNPLL", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | isLink[f1] and f1->f2 implies not isLink[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | \n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "qJFo49dqsNutgFyMh", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:10:13"} {"_id": "RhRQQvWKgFHD9aisn", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash \n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "898vvwGkarfPZtkCz", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:57:30"} {"_id": "ns334t9ChMdhuihnR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EtPazcC83WTtT7KhM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:25:35"} {"_id": "BEmHNRWHxPF93ovJu", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not Trash\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qqTqLA2gCQ5HvfExf", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:55:26"} {"_id": "wEhrN2r6DHft9o2Bh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-11 16:26:16"} {"_id": "yNYD9bx3z7HsS4dSm", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n\ncheck {aux1 iff aux2} for 20\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "kvSkcctTsjkdAXHM3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:53:15"} {"_id": "7K3Xv9rpG3sKD4PuX", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f in link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "pQGtWPqom7ZztPXpB", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:23:58"} {"_id": "th4ixPKRaqPjtk86z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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,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": "CBDacZ82uE6GpaMwk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:24:20"} {"_id": "gKG5dFEhDoupGQqzF", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HTbNpfNpGW8Y2a6Hb", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:43"} {"_id": "sCzA4rXmzdMTEktPS", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected -> f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FLKxRjrXYGvbMTjpf", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:58:05"} {"_id": "BTu7jspzyG7dG9wG6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Go9cS7sZ2suTRNvJs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:06:30"} {"_id": "Y74pyWjc6t8AnfTw4", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XNfPaLduNcuzQqh8X", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:48"} {"_id": "JjtaoAy3CJuphGGq7", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "NqjC86bMbP66Tpxec", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:58:39"} {"_id": "f7TigazWyz5jFbvkc", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 -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": "rFLGiG4CQ9QytbWup", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:47:40"} {"_id": "L4BocNPrvfJFg5as8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x8LHWiKmCuLuXFjPb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:13"} {"_id": "AmTYDGLFzkAJG5WDo", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\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\t\n}", "derivationOf": "vZxJtKd8kDGiSFnnh", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:45:26"} {"_id": "FCvf7W4TmCLJdrZ7j", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash | all y : File | x->y in link \n}", "derivationOf": "K74AF4hmHTervn3se", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 09:46:18"} {"_id": "7RMGfgezwYabBCDvt", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\tall f:file | f.link in Trash implies f in Trash\n}", "derivationOf": "maHHJaDCmCrpjvQHD", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:44:08"} {"_id": "4Y6mFkMxoX5xt2oqZ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected and f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KznhFKgyHGfQMx5Bq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:34:14"} {"_id": "MrCRvvXHNMM9TCesw", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f,g : File | isLinked[f] and isLinked[g] implies f->g not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hMprt99ACEuqfsdva", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:01"} {"_id": "5NHC9Zdjqgrsf3wXg", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "mKgeiDYdL5MszrxEb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:22:30"} {"_id": "JNmRYtbpuChWRfh9B", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C7uyjSigpR3qL5Hae", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:54"} {"_id": "maHHJaDCmCrpjvQHD", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "ay2aag4zpLmWAga5J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:43:29"} {"_id": "9GArKhggXmexAuvBZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PApq4R4bXWWbJ3aHb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:32:07"} {"_id": "ZRgCJopjk5umvsox6", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "cMEvJdX2DFe9H3ZqB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:18:45"} {"_id": "4m22mmvryDeu2xem3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "eQ23fmqFd8ycuEq4r", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:01"} {"_id": "ZuCJEpS5LkM9vvCZ4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bFGqpb39oj2DgKuog", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:06"} {"_id": "PBRuQcaE837KXn6t8", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n\n}", "derivationOf": "ZzDyECEdsPf9AFuXF", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}]}}, "time": "2019-10-2 14:54:49"} {"_id": "xvAcpGs5bJEnYNDHD", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 file f:F | 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": "sDLK7uBCbgZon3znd", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:32:14"} {"_id": "wvyAbwtjWNvbxabGF", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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": "5c6ZgrK45dsz3hiAs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:13:47"} {"_id": "7pybu3znodhe7qXvQ", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked(f1:File){\n\tall f2:File | f1 -> f2 in 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\tall f1,f2:File | f1 -> f2 in link and f1 in Trash implies f2 in Trash \t\n}", "derivationOf": "sdzSDsT2A9TGcvwa8", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"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}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2020-1-8 19:38:27"} {"_id": "P6bCqWxiyRLejrQ5q", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2DRghxAg35xPdh2tD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:37:45"} {"_id": "3nukaPjAxSveLFg8e", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 \t\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}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zn3w37JzpCkpXnoyJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:19:21"} {"_id": "rCgD35TfCDDKMuraB", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "SHNSYEFkeeCTcM2FD", "original": "sDLK7uBCbgZon3znd", "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": 360, "y": 199.16665649414062}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-11-17 16:51:28"} {"_id": "oSGussweQtKTjZnx2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:05:32"} {"_id": "YPuxCMnLAs3ndLE5x", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2wPTopJMha8PGN6eq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:32:22"} {"_id": "qqTqLA2gCQ5HvfExf", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not Trash\n}\n\npred isLink[f:File] {\n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oaTXbFKqwKH5o5Q4T", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:55:12"} {"_id": "HTxZB945agJrBZgWT", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected and f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AhgZuSZxjCtktFbgp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 19:21:29"} {"_id": "ERMrxRmE3222LhhvC", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tDeleted not in 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": "WwSdxE23tHgtDG3PT", "msg": "The name \"Deleted\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:22:18"} {"_id": "zDmBv6g6vyaeZEMxe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PjCEMtJd8jfpffFKM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:19"} {"_id": "vLdLkQG3obEDe9onP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9v9JWaBYcRcBhusxs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:02:58"} {"_id": "677JNbqs3i6bdc5iy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\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": "WLFpwwuDXdztXRDa5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:59:50"} {"_id": "W2EcAG6NjDbEFHydT", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:25:03"} {"_id": "snuTM4w6tmtdespB6", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1:File, lone f2:File | f1 -> f2 in 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 link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "6frtL7reyWa4L5pe6", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:16:08"} {"_id": "G9ReHYC5tPCBihiCk", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hkxiiFWXBruMY7rfs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:38:33"} {"_id": "ZwnSZ2FnSta4vZfzD", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies not f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "gkMEZNKZ7gXpbiJro", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:21:41"} {"_id": "2G3uguHLD48fiL9J4", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "M7ziesPxYAkHNTAha", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 523.9921875, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:20:56"} {"_id": "KFaPEeiHiTpdDwAeK", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | (f->g in link and f in Trash) implies g in Trash \n}", "derivationOf": "3uKPxvYKdkBidMDiA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:55"} {"_id": "8rMnbo5EBdpoWNSe7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "iYszuuMKwvpCtWjKp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:20"} {"_id": "8x5KBjWGZpfXxksTX", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y link and <->z in link) implies y=z\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": "KxQomnTJ6aDtzRLaz", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:17"} {"_id": "PKyySv9zq22f5RFb7", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "7KLYsntCPYcYBScbh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:28"} {"_id": "4y6ZsbX2Pnta24bKH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "aM3ygcFHskvdoCebf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:53:59"} {"_id": "Ghc2Rshye4j5LxATX", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | (all g:File | f->g in link) implies (all h:File|g->h not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall g,x:File | f in Trash and \n}", "derivationOf": "shdpRJhYyWqdXcYkZ", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:13:30"} {"_id": "aopaAjTNCDKBDbY4R", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "Q8zfMacy5xW5dkTdY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:06:06"} {"_id": "nqu8ioqomcZff46Ze", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jmGv2FTaDjEefso8A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:07:37"} {"_id": "u3hgc6XPtNpWw9WNP", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "6xXW5tFKzzuEZNeQX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:26:49"} {"_id": "YdsK5TMoHcky8ZpyW", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2) implies not isLink[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "d4GcXJFjpGdwdZofv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:10:52"} {"_id": "2pqyE44eazAYKur5N", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | x->y in link implies z->x not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, g : File | (f->g in link and f in Trash) implies g in Trash\n}", "derivationOf": "XXWXAf8cLRBCm6pDM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:19:16"} {"_id": "JztxEz7qMAf524cb5", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:link | l in Trash implies File.l in Trash\n}", "derivationOf": "PCAeFm3FufFikQD5n", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:02:46"} {"_id": "tixY6QENGoS9doEmG", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall 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": "8JWoCQuWneojbu5Yu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:10"} {"_id": "TLhtLPQjB2PFeeH8x", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:07:17"} {"_id": "iXf3P5NNAgbcApbKN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\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": "5GkziJPdx62NwRoiC", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:34:48"} {"_id": "xndB3HuXdL69XGYfF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j5R9ZK9tvN4KCQJ7F", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:20:14"} {"_id": "dxmfh5u8p2nqQp43T", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tg:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qZuxAFjGu8dZS3KRu", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:01:34"} {"_id": "JFhCumwTbRdKR8cez", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B4XPgQuQj7AAAkH4n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:11:34"} {"_id": "SFMBQj9CNG5eGPxed", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, g : File | f->g not 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": "on8MEX9kGJPMchgTq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:15:33"} {"_id": "AnDir2YciJM9D2B6Q", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\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}\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": "uxATz8c8xDXqECtDf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 13:10:07"} {"_id": "ThDjEeHrMLotx2YNp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:46:21"} {"_id": "oR6aJos72XKS8ZNZv", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "8BpGDJhyoXgXgcZik", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:23:12"} {"_id": "RktgyftsibJsrjByd", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "joJnAEEXAo4QTebhn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:22:50"} {"_id": "4dY27PaHzSWLXzqEk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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": "Mu5F5psdQYqfKdtfZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:54:26"} {"_id": "mEGQefgHtGHNFmBN5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "EH599g5ccP5MKpbaJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:00:47"} {"_id": "o9PeLvEBTg5kv6cLN", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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": "pozAEwPAQCK4ktopF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:35:07"} {"_id": "M7ziesPxYAkHNTAha", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "8mq4H8NXHEQivBGZp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:13"} {"_id": "Z2eimjBECzPGaztjA", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JNmRYtbpuChWRfh9B", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:04"} {"_id": "Zd8pxRipmZWwzx7oi", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | f->g in link\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PD4zotYE2ZecHC6sP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:55:42"} {"_id": "LLATuT3ABrHpHELrK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link) and (x->z in link) implies x=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wPaSkjwzfLic8BXxu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:50:22"} {"_id": "M3atFFbbTqy4Wwf2z", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall x : File | isLinked[x] implies x not in Trash\n}\n\npred isLinked[f1 : File]{\n\tsome f2 : File | f2->f1 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "nZx8CpiiQ9HkD7ETR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:01"} {"_id": "iv2zn5XP4PcvRBi3y", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6kEowmXR8Ghs4EPTv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:46:18"} {"_id": "HYdm8St9DHHYGagP7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "uzvPCzm9pu7TEPtrS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:20:17"} {"_id": "XCfe7ft39siyxJY4z", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s9GySWHto8Wn2ZDpy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:30:15"} {"_id": "aNqEhRnK5jyy9gBNo", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv41{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv41} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QfPLYTLWW9enEgp4d", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:47:58"} {"_id": "ozEW9XHwDjcYfgmAP", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y : File | isLinked[y] implies isLink[x]\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | isLink[x] in Trash implies isLinked[x]\n}", "derivationOf": "iB46GcxWLLYwc85k7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:11:34"} {"_id": "LjRYeZf4DfhjXYWoB", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n\n}", "derivationOf": "4y6ZsbX2Pnta24bKH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:54:30"} {"_id": "hzkSyCYrHiGaex8NQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "PK55yTtmruQSnYNrg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:47:41"} {"_id": "iLc6NngT8C2rBEdbv", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "shjfvnyCjEvmDRBkk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:41:51"} {"_id": "6kzY6ZsfnxnWh8F29", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link implies (all z : File | x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "QEPDT3hgFZ5usixJv", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:41"} {"_id": "zY2Bd82B33rwjAhWm", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "NKQfjgzwabgKyeZsF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-1 17:41:33"} {"_id": "Y5EZLSh9mhBaJAzL9", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "cN3MeCQwECnXbNWQB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:06"} {"_id": "y8cKp3r6NznqHBwhu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "PiKZoYYNykZXcB822", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:54"} {"_id": "Q7ayZAMo4jbzQhxht", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hWMcDhCqYFGfrWGWB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:34:46"} {"_id": "QfPLYTLWW9enEgp4d", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv41{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SgDParfyTQBE94C4b", "msg": "The name \"inv4a\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:47:48"} {"_id": "rwyyvmSdTDLk6c6sz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\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": "rp9apyBkEQ69ZSv6G", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:15:14"} {"_id": "JTsiFu6geY2nQmR6B", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:35:20"} {"_id": "y7dS5piht8geMiN6b", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f : Link] {\n some g : File | f->g in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ASWQaWnQjM2eNbNZT", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:56:34"} {"_id": "8JWoCQuWneojbu5Yu", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall 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": "TmP9EM8dbMN9dLriG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:05"} {"_id": "6LDPhTzLpQ9Gv3WkD", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NmnoqheX7n5dEeYFT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:40:06"} {"_id": "hZFpN6pzmmCyRAibL", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "PXMxjixjpP2EZSLgy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 14:54:01"} {"_id": "FZq6MtA4o2dCSCaFM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "2dpZWDF5dMYN3yZij", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:56:35"} {"_id": "phAaJf64z7YRYG94K", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2 in link) implies not isLink[f2]\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | isLink[f1] and f1->f2 and f1 in Trash implies f2 in Trash\n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "Xov6smfKe7H7ppf2f", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:14:35"} {"_id": "RBBxi9Z3wGwm8GaFv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xc5wYLHJiHnudBcto", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:43"} {"_id": "oeMdFZT7TCJibzBdv", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NfphakrpXY3PCzizF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:58"} {"_id": "ASWQaWnQjM2eNbNZT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nZQXAKb65E9rBKgEd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:53:45"} {"_id": "MewqYoShWxMYvAwDe", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x 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": "TEyC4HoJ7TbRpqaCB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 07:33:01"} {"_id": "7NhaQTtKQwwgecMny", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LzXq8EMfjParyaBur", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:50:36"} {"_id": "WH6gfb8kT2hawv2Cf", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link and f in Trash)\n\n/* There are no links. */\npred inv8 {\n\tall f:File |f.link not in 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": "4nFiohNn22bcKsqHo", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:40:54"} {"_id": "SaGGn775MA3agEH5K", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rGQXdovs4arDjugYj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:47:53"} {"_id": "nhWHBNtcBYmQLrM4H", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \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": "38rvY57Pfm5eYXkAa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:36:39"} {"_id": "i9Qw4dDhA8i4hBaiM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5NaDsuHR2r6Amm4oi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:27:28"} {"_id": "d7pZhKar8PbeYPauj", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x,y : File | (x->y in link) not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ENKiDbXnENpvozMHE", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:50:56"} {"_id": "LdwNL86R6q3errq6E", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | ((f1 -> f2 and f1 -> f3) in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "A8NKafrrAb3MQa9RH", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:26:50"} {"_id": "fQBfjbf6kWgZPcmaA", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tsome Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P2MMSf3EhYgCfvdKc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 12:06:31"} {"_id": "LH9BNesyrkzGFQuAd", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "C7cXQDzJcXGqMYZdS", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:23:30"} {"_id": "xjKWSiMzRTip8Zwed", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t 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": "H6eCmcHFvo7sRibc4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:14:10"} {"_id": "mZZeiMPBZ6QTPnEt9", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\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": "4qNgCzuBoDxsguQYj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:36:56"} {"_id": "Q6bt5zqgbSSdeR6NQ", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "67de6Edn6ac9bxDc4", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:37:32"} {"_id": "Q8zfMacy5xW5dkTdY", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "5MtjLSp5DTnhtFTEu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:05:50"} {"_id": "yKczy6yvL5bK6h5hR", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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\tall x,y : File | x->y not 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": "q3X5vt6EDYcmRHX3q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:15"} {"_id": "bhKo2FMXF7RGWA8sr", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\tall f:File |f.link not in 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": "AQYJbX2b5asLM9ydv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:39:36"} {"_id": "7cHyzKj25bwBcSHea", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "zLmM9ruNFJmiMata5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:15:43"} {"_id": "5GkziJPdx62NwRoiC", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n98oRN4v23LtG6DS9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:34:28"} {"_id": "PjKbhBhtohBaWyP4n", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n \t\n\tall f1 : File | is_link[f1] implies f not in Trash\n}\n\npred is_link[f : File] {\n \tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "S2uwxKEYWSxiMxbji", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:30"} {"_id": "6c7RjycRrBziY7y7P", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "zcZK7cw594iE8nvrr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:06:39"} {"_id": "eNfzGDRMEumcRepnj", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome 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": "tixY6QENGoS9doEmG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:28:36"} {"_id": "NYqAeRq44ycNrujS8", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies not f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "ZwnSZ2FnSta4vZfzD", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:21:47"} {"_id": "Q5ZTMFvvpxudFuRTo", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2 : File | lone (f1 -> f2) in 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\t\n \n\t\t", "derivationOf": "EyhRmBdqZepTjEy9d", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:13:57"} {"_id": "9DdMyzk8BHwNfHLph", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\npred isLink[f:File] {\n\tall g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pyeyYrNBr6stkgtMH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:00:52"} {"_id": "XsnL2Lw7fs2GwFuvc", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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\tall f,g: File | f->g not 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": "5nyFkbibpHezvQfKC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:12:42"} {"_id": "mPL9cWDZ7yLugGbjY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cLrP5vAFhJRj9YwPM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:41:00"} {"_id": "4hGC78BC4t4x8BrSg", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YF62NmQ3YKq6Few2y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:07"} {"_id": "JWAHaKbHrfHvuhA8b", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies (x->y) not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4E2S8vW72taiRRBqZ", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:47:58"} {"_id": "xcm2FRRK3WeDmASJd", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y | \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8QddMjkbg4AYRtRAM", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:00:43"} {"_id": "fYnRmYMzqc48c5BJ6", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NRZX5wfjdEaTGegXd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:13"} {"_id": "joJnAEEXAo4QTebhn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "ga4LLu8mY23sL4doJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:22:35"} {"_id": "wvCY5sywijzqv4HT7", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PDcfP5YomeTba8Hip", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:41:20"} {"_id": "x5DGh2bY2DmC2mCgn", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n\tall f,g,h :File | f->g \n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x, y : File | isLink[x] in Trash implies isLinked[x] in trash\n}", "derivationOf": "ozEW9XHwDjcYfgmAP", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:23"} {"_id": "4tuv6v2JnaHqtfCGd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "7pBAqWkrvHiPr2nts", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:38:52"} {"_id": "YF62NmQ3YKq6Few2y", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\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": "8rMnbo5EBdpoWNSe7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:37"} {"_id": "9TB5BrMu6Z2heiGBq", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File| a->b implies b->a\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oarfBE6gGPhrXYQ7t", "msg": "The name \"a\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:52"} {"_id": "g8KvCSYSM2xyaxqRR", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "a26EnZb5nRk99WFbH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:38:18"} {"_id": "GP5ouy7arsKPSEzLq", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hXmWqqine77kxRJvb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 17:53:47"} {"_id": "zwwJYDqxBz6daLbpP", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AQw4RvdJZqttdv6yh", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:11"} {"_id": "xxQzSthKSmtfGWuBc", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\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": "FBMqJBw8pv4tsxaA3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:22"} {"_id": "Lm3mswycYmLfPahGP", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \t\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\n}", "derivationOf": "d7X9Ko3s6drLN8STW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 22:14:13"} {"_id": "ddQLhXyYmCPhBMo2A", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "sDDFsLz6eXjnResFP", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:55"} {"_id": "e2mo89W7uHH3ysFNo", "cmd_c": true, "cmd_i": 10, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "rb56et2P3hmowCRAx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:16:32"} {"_id": "aWdEsJLGoenyvjHuh", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "PpcP9Q2cBm6QvokaF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:55:06"} {"_id": "vCGF5t8at4AdCFXtE", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | 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\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\t\n}", "derivationOf": "aYDkBWDp5RoNRgbvi", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:22:31"} {"_id": "YMWocFaSjCfJ3vWTL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gsXyiy2pWpBETaQnm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:37:05"} {"_id": "QMK9NXuF4pB6k9fiF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "ogg6YEoGjisn3kk3w", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:24:11"} {"_id": "dF8Cc3W6KPJmNFhgL", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:32:56"} {"_id": "yGe3qmiiSkSDvFXTa", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xox8Xxk78GMMfMCEo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:47:40"} {"_id": "CkXBQsjYqDHsAjAyq", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GK9GuaMGEHcM4DyAM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:07:22"} {"_id": "ktou9fvYNp7dhRKJx", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fE7jwSPmJA9frDH4g", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:39:31"} {"_id": "A9zSYJdZCYwCNExos", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Files | 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": "5Xd4QkLPPu6GAAZnW", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 10:33:43"} {"_id": "6ND8NCXRioL7zHAQd", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | f1 in Trash implies f2 in Trash\n}", "derivationOf": "ReY6ButgM9Wq6oANP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:49:00"} {"_id": "qcFFcC72zD4RKik25", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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(File in Protected) not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qknwm8MZTn86fecD9", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:38:45"} {"_id": "sahnaZ5gPrCYsTTsS", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tf:File all 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": "oT2CfWqHZMy7C77ZB", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-30 19:03:44"} {"_id": "fSvfbwP2jWNDkGr8n", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink(f) implies f not in Trash \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aNqEhRnK5jyy9gBNo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:56:05"} {"_id": "B4XPgQuQj7AAAkH4n", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rkxXTjdAqGRNyjbEx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:10:43"} {"_id": "SxQHK8dZRq9f3wSGy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r94tiGS8nSrYmQRiN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:35:31"} {"_id": "9mxebEXb9zywvQCvn", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W6FqtrAvGtyjRDwBw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:50"} {"_id": "DsvcmJRwrY7zH9seR", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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.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\n", "derivationOf": "rSN5XeEc56ofKRh87", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:43:24"} {"_id": "ogNjLANZp3ttiMebx", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1->f2 not in Trash \n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yvs8Kq7KH9j6mR7mS", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:42:02"} {"_id": "HTrh45r8Hc94Xir2H", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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\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": "sDLK7uBCbgZon3znd", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 13:45:28"} {"_id": "sLhgTQnwEqifTDLvQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eFBgJumkmwxoJhN7h", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:25:51"} {"_id": "rkTBMBr3LqLERwGsH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "qReRmkeN2WibkXwaG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:29:44"} {"_id": "z7HYBz922MzRE9JYZ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jga4whWvhJk4qJgYh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:16:37"} {"_id": "PN9MSerYkzNY5gbHe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x->y not in link implies y in Trash\n}", "derivationOf": "42ye9mNe4GKTQmKtX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 11:32:30"} {"_id": "9qdZ6onT4v49Qaokm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 21:49:59"} {"_id": "oarfBE6gGPhrXYQ7t", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File|\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5Kz6Fpo4F7wLSzRRy", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:37:12"} {"_id": "kvSkcctTsjkdAXHM3", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n\ncheck {aux1 iff aux2} for 10\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "C5Mna3xG6WvnwWYzj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:52:56"} {"_id": "oT2CfWqHZMy7C77ZB", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "sDLK7uBCbgZon3znd", "msg": "There are 3 possible tokens that can appear here:\n, { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-30 19:03:19"} {"_id": "4ncrmkCmjqDDgcNgT", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f :File | f.link in Trash implies link.f in Trash", "derivationOf": "tTDSikevEmYDHP2mD", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:04:42"} {"_id": "og8Mov8EbJnGxE9rN", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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 all f:Trash,g:File | f->g in link implies g in Trash\n\n}", "derivationOf": "LjRYeZf4DfhjXYWoB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:54:35"} {"_id": "d4idtyeaPyCGmMTRi", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "juSRxs8S8Dc9hBSC7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:44:27"} {"_id": "YvR5egoWhZWk4LKwr", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j58NrbG4aCTpsEDm8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 21:32:43"} {"_id": "68WBGK3oZ653EPTsY", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wACMt9RQw3wWF4Q5j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:38:33"} {"_id": "qRh468n9GR9JsnWry", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,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": "fdQez9imyrFEgAh95", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:33:51"} {"_id": "quqryNMc9edEMaFdS", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "JjtaoAy3CJuphGGq7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:41"} {"_id": "p3yak2Bhn9TSh3mqX", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XSEdL8oZnrvzkkCxn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:09:33"} {"_id": "t54kMoXxpKPNW9rsR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \n \t\n\tno Trash\n all f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n \t\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n \n \t\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n \n \t\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n \t\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \n \t\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n \t\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n \n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \n \t\n\tTrash.link in Trash\n}", "derivationOf": "qGEPo6DCwZQvg6QPj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-11 09:24:03"} {"_id": "oqXS8TijjSjHCtKpG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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}\t\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e2z7v5cyHgTPxrHoX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-10 14:48:37"} {"_id": "LzNZLbEkiPBKSpwRS", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | some 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": "DtHFoBm4QjD6zeSwT", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:13:00"} {"_id": "fdQez9imyrFEgAh95", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Laiizqmp24izEZJXu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:33:17"} {"_id": "fC9cLDzt5KaZJCzXs", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g :File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not 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": "kdw9f7TYMTpm37ivb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:51:00"} {"_id": "yJ3TjG8aeyxrMhcnk", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File,l:link | f.l not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "B8mWSB8znsupcLvTK", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:58:09"} {"_id": "B87aTqYsGfTHx63Pw", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "eGnTMx4rz3BcYYGM5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:28"} {"_id": "MJkkuYsTrnCaPbWsm", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RPdM7HB6Bwk9oRtXt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:35"} {"_id": "DyLk6aJLvewhZW6WP", "cmd_i": 9, "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x in Trash | all y : File | x->y in link implies y in Trash \n}", "derivationOf": "EWhJCe3B4nt2D9orp", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:45:57"} {"_id": "Z847hA2MhuEHm4yAn", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x -> y in link implies y -> z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x -> y in link and x in Trash implies y in Trash\n}", "derivationOf": "GSrseYpsDBNJit9mQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:46"} {"_id": "jpTj7Z2FznmYiyJqw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 = 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": "XNLwYTfQW2G3NNKWM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-3 09:35:41"} {"_id": "Z3Anwx66f7f5tG5zL", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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(some File) in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vZ8Gpo8u2ydeya9Rz", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 15:16:14"} {"_id": "8JHaZnYRqxC9A8Yah", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all p:Protected | all t:Trash | p!=t\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | (f not in Protected)\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gjduhkKZ5vP27Q5N4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 21:43:34"} {"_id": "EmiJxDcTEDu3swuun", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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}\t\n\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": "p6gnSLrkMMkfFZLJ8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:49:02"} {"_id": "36fKNhYQMfoMxghS9", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux1 {\n \tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\npred aux2 {\n \tall f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\ncheck (aux1 iff aux2) for 10\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "MiY4pKgsDP3XNKd22", "msg": "There are 4 possible tokens that can appear here:\nNAME seq this {", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:51:47"} {"_id": "86DP93cNTfAmvaqmu", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n\n\n/* The set of protected files. */\nsig Protected in File {}\n\n\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "EPtgDZWGqbM7DHujk", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 592, "y": 199}, "File1": {"x": 296, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "File", "visibility": false}, {"type": "Trash:File", "visibility": false}]}}, "time": "2019-10-2 08:52:29"} {"_id": "nCdZ2NijqfMhaJXnD", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "Z2EX6ifkzLTrPTcYX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:38:55"} {"_id": "fbWpiA8MYHHFpcFzD", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f: File | no f.link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\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": "EWTJunvX4Qw5hRvwP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:54:02"} {"_id": "yvs8Kq7KH9j6mR7mS", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1->f2 not in Trash\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Fn5Yq2ey7euM5ZNbF", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:41:33"} {"_id": "2CPMYGzvMyMQ8AWBJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not 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": "WWKGmrHGieeKHAM8D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:17"} {"_id": "nbmQE3z7NKcTqPBW7", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected -> f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sCzA4rXmzdMTEktPS", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:58:30"} {"_id": "Qt6BoL2KBRasn2koQ", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash | all f:File | t->f in link implies f in Trash\n}", "derivationOf": "WKQvbYZxSTLyXfGQD", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}]}}, "time": "2019-10-2 10:05:49"} {"_id": "Q5RY3GeDPDRZrh8N8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | some g : File | f->g in 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": "2p2YGJS9cjrj6WsEN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:48:07"} {"_id": "4NeijvNHJptRLaqp6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link and f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wH3ihNzAJ2N92wRES", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 23:15:41"} {"_id": "Kq3eKGEMqgpnDdz9W", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | is_link[f1] and is_link[f2] implies f1->f2 not in link\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "jYBYcEoGP3zCEu3Rf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:11"} {"_id": "ichfqFyckcTyZ5QjF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2:File | f1->f2 not 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": "33QgETcqYYKP8acQd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:58:26"} {"_id": "h47qiL5hNtTSfGjvG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h,k : File | ((f->g in link) and (h->k in link)) implies (f->h not in link) \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f in Trash implies g in Trash\n}", "derivationOf": "jDAPcDQJyBCBegDpP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:07:36"} {"_id": "7QGcxLFpFMeuJpfc4", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\ndef isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xnTJ968g5wABHEF4Z", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 11:04:28"} {"_id": "ANFNvqgDfKqwwzZSh", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nqu8ioqomcZff46Ze", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:07:41"} {"_id": "FkFGCrRCfZYbptZAs", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "gtKqG3gRyEmnaz45y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:30:19"} {"_id": "5AcfNakeRQRvG6emh", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zwwJYDqxBz6daLbpP", "msg": "The name \"protected\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:13"} {"_id": "pTdEcnbXemzotqMWG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\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 Trash.link in Trash\n\n}", "derivationOf": "wkeaL9Bnnjzygj7bj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:17:24"} {"_id": "ET852mQddp8EBYvZo", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "LcesKvfKMzezeiwKx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:15:31"} {"_id": "E7eGZWRtAauzoEP7k", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink in Trash implies File.*link in Trash \n}", "derivationOf": "NjhNpawodP2j4SeCS", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:21:18"} {"_id": "MTFG3sk53KRByHgHS", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "h3x4xwJTt69GxonTt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:06:07"} {"_id": "tmPMEzF7ymBBpNFNc", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o22q24zd43mc8k2kF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:24:12"} {"_id": "vqu8ETSNy2pz89mBp", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t~(File in Trash)\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "39wsgjMxzpXvBpxnH", "msg": "This expression failed to be typechecked line 32, column 2, filename=/tmp/alloy_heredoc10037929571085068905.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:34:50"} {"_id": "S3Z7HYvhAm4M4Eks8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z: File | x->y in link implies y->z not in link \n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sZHdWQ7KcM2xNsXWE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:07:49"} {"_id": "N7PyTTrGvHQStqaMg", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g2Z859YYE2Qj2YvSb", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:38:36"} {"_id": "QMz6cwcnR6x3RWwjT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f3 in link and f2 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "6aGKDGge6WiXRTuAq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:16:50"} {"_id": "xiX9DDXHEWF2q4jmd", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link or Protected and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "brTh5cBHeAGCweADu", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:33"} {"_id": "rxY2rrWxLpH7EqQtb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "PKyySv9zq22f5RFb7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:30"} {"_id": "RPdM7HB6Bwk9oRtXt", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l:link, f:File | f->l not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LseAKn7qwBEk4tCsM", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:49:53"} {"_id": "jbagKy5TrTJZtKjCX", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File |f in Trash implies f not in 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": "cGsHWPnBh4eah87Ey", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:26:39"} {"_id": "jPF5wy5YuuXgpdHEQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "34vMTxCNkoRuxKY4M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:01:39"} {"_id": "XPdBwStoGEwWbY7Zt", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZwMxqoGQzDayuMipo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:48:49"} {"_id": "SRGhfZx3xk5wP4LMF", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h | 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": "7w7XCBSGueRdYsNTb", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 11:19:28"} {"_id": "oBiYcWNowDm4h9Ang", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall x : File | isLinked[x] implies x not in Trash\n}\n\npred isLinked[f1 : File]{\n\tsome f2 : File | f2->f1 in link\n} \n\n/* There are no links. */\npred inv8 {\n\tall x: File | not isLinked[x]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "M3atFFbbTqy4Wwf2z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:53"} {"_id": "Wd835uR9xtNNJfYjf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\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": "BA6oDEq9TcZcEB6PG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:37:40"} {"_id": "Cu7oa6oSL6bW5Y5p2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in 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": "bd3ifs6fBgZ4dCYyf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:08"} {"_id": "FvEMN5gocSTXv4na5", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x,y : File | x->y in link implies x->y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a6QsM2aFLWZur3Bus", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:51:23"} {"_id": "pt4FWkTqjoo9ohJ9K", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.link in File\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\n}", "derivationOf": "kcdeefkcqZrvWDjSK", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 11:45:00"} {"_id": "pEZFDuyLFpm2YxaaH", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "n72y48i5j3BWHLygT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:36:08"} {"_id": "TCrZGhfcLGkYGG8CJ", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\t\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLisnk[k]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4PAQRzyd9drKShuY8", "msg": "The name \"k\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 13:49:21"} {"_id": "oAHYJ5Jwr7wwsN3Ab", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 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": "x4evJDKnv48cYPpff", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:13:24"} {"_id": "WiXGaz2sKL3TkSD9A", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "JMek4nuMw9TpbSCoe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:28"} {"_id": "xWfCckSq8tPDXdih6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "7ibqpgEtaTYcuA4Dp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:20"} {"_id": "HyKHrSzdp8Fh5R2hP", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "aEWZhN9vi4EHfXRJk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:48:51"} {"_id": "3RqkJ8fim7RvNHZsD", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Files | f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A9zSYJdZCYwCNExos", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 10:34:04"} {"_id": "8XhF8Axsd3y3wJanE", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall x,y:File | (x->y in link) implies (x not in Trash or y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TpbP5uEiKt4kigGFN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:52:32"} {"_id": "dmeX7HmKqbHzD2F4P", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tjguSAZvPow3X3ezi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:35:18"} {"_id": "n9eFvnBE8YseAxed2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\npred is_link[f : File] {\n \tsome f1 : File | f->f1 in link\n}\n\npred is_linked[f : File] {\n \tsome f1 : File | f1->f in link\n}\n\n\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TWzxyPeRQ9Y2FXG5Z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:15:29"} {"_id": "wejDznQmHtcW9YzE8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "apmCitkBnEuPBCT3B", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:13:54"} {"_id": "EnAZsx76bPAnAa6d2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "cSJDaRfb4CWtXSc9a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 14:52:22"} {"_id": "wH3ihNzAJ2N92wRES", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AMiuEozBDbgwgjSap", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 23:15:36"} {"_id": "fzS7ipsYg34uSycNq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "Yw69X5M56AJTFpa6m", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:02:49"} {"_id": "AuErcJecND253jWtx", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | (f1->f2) not in Trash \n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ogNjLANZp3ttiMebx", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:42:25"} {"_id": "Xg9abqxPzin96mBwq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tDFuSDAuhzdJABLxt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 11:25:12"} {"_id": "hnuGxZXSspEb6XpBi", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "AXFnDGeHEHitya3dt", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-12-2 12:06:08"} {"_id": "xT8ghrJK5XE8YwSdg", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File | (x->y in link or Protected and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xiX9DDXHEWF2q4jmd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:44"} {"_id": "m7fii49scQeyKh3rN", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not 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\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "N7PyTTrGvHQStqaMg", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:38:44"} {"_id": "224v4aRQeLuPadjsk", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "7cHyzKj25bwBcSHea", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:15:56"} {"_id": "AfpoHQ6mkvbJEkKEp", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | some g : File | f->g in link implies g->f not in 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": "oKkcDK5PEZaRtQswm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:51:48"} {"_id": "ygLQZPvw8HhaPSLM6", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6thiNbiyNPG7tt7Xp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:19:01"} {"_id": "wAu25LRwzKExPeECb", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no (File in link & Trass)\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SaGGn775MA3agEH5K", "msg": "The name \"Trass\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:49:07"} {"_id": "FqHw25B5M2KWc4p23", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] and f not in Trash\n}\n\npred isLink[f : File] {\n some g : File | f->g in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KovHkBoWoykegjJYy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:35"} {"_id": "4etoGAsFFPLmDfPwf", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uRLFZMGo3fTy5jBkS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:47:01"} {"_id": "eixp6ZiCXxpRLXCk2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tall g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DDyzMuhmirBrhikjN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 08:45:13"} {"_id": "ChMx8haoKQoqZX4Wy", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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": "oSouXoMZex3PcjaXG", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:26:02"} {"_id": "3uKPxvYKdkBidMDiA", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked [f] implies f not in Trash\n}\n\npred isLinked (f:File){\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File | isLink[f] and isLink[g] implies f->g not in link \n}\n\npred isLink (f:File){\n \tsome g:File | f->g in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g:File | (f->g and f in Trash) implies g in Trash \n}", "derivationOf": "edkbuSZ5XTMcoDXhy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:05:55"} {"_id": "WiPd8AJFxpuJuz7zr", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n some f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZbwizZDX9nQ8oA6M7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:38:26"} {"_id": "z4raRNvknnqD9uanR", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash) and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rqwNFPzpPqi3AwDyj", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:51:08"} {"_id": "KAaMgKMaX5E5XyozT", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "vYaTyeL7HPvWNDZWp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:10:41"} {"_id": "nqq5TZC9GPXkvizwZ", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\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\t\n}", "derivationOf": "AmTYDGLFzkAJG5WDo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:45:32"} {"_id": "39JPxYbXxT9DG98rx", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "umKvieynEaJm7JM59", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:14:14"} {"_id": "TmP9EM8dbMN9dLriG", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall 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": "vmqgqRsyep7RDM7JZ", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:27:55"} {"_id": "MqGToSzw4SJyw4exY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "sig File {\n\tlink : set File \n} \n\nsig Trash in File {}\t\n\n\nsig Protected in File {}\t\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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n \n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \n all p:Protected | all t:Trash | p!=t\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | (f not in Protected) implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8JHaZnYRqxC9A8Yah", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 21:43:50"} {"_id": "yMxt9RocmpoNcSZYS", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "iv6zKFshh7noPFqHA", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 444, "y": 199}, "File1": {"x": 444, "y": 298.5}, "File2": {"x": 444, "y": 99.5}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Protected:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Protected:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Protected:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:20:15"} {"_id": "5Xd4QkLPPu6GAAZnW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "j8TQDseE73oRvudq3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:33:05"} {"_id": "faxeWWKGphW5Qyr4c", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:08:07"} {"_id": "YumqhEyiizgopKQHc", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f->link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\tall f:File | f.link in Trash implies f.*link in Trash \n}", "derivationOf": "DWzg7tKeYLDbSfjT8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:39:12"} {"_id": "phuSDaAa9MhpeWBFf", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4Y6mFkMxoX5xt2oqZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:28"} {"_id": "EtZCHSTh83ziHY9ii", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link implies (all z : File | x->z not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "6kzY6ZsfnxnWh8F29", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:48"} {"_id": "hzyrzBrMeJDB64Cna", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y: File | (x->y in link) implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3jjusNz3QM73jrfj9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:07"} {"_id": "bM5xNcYykpy2F64MC", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3:File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "ERoa9BGN7RJ9nmN9f", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:32:25"} {"_id": "3KoA2cW92tTrYJsLb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "7RMGfgezwYabBCDvt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:44:12"} {"_id": "GsR4pDEaWFacnAyQT", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | x->y in link implies z->x not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, g : File | (f->g in link and f in Trash) implies g in Trash\n}", "derivationOf": "nYu6zmFBkqBWM9AZn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 18:58:06"} {"_id": "FLKxRjrXYGvbMTjpf", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tmPMEzF7ymBBpNFNc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-6 15:24:24"} {"_id": "X948Q8otoaCDZadzu", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yaY8vpLNfCBwxvg5s", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:51:53"} {"_id": "2e6ewuF9BkcHkXt5M", "cmd_c": true, "cmd_i": 10, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z: File | x->y in link implies y->z not in link \n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y: File | x->y in link and x in Trash implies y in Trash \n}", "derivationOf": "S3Z7HYvhAm4M4Eks8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:09:41"} {"_id": "A8NKafrrAb3MQa9RH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | ((f1 -> f2 in link and f1 -> f3 in link)) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "hj5sxHgeCfXuCec7z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 22:26:34"} {"_id": "NoNR9aGD6CN4N7QXj", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iv2zn5XP4PcvRBi3y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:46:23"} {"_id": "Yp7bgcq8Wwrm72cjt", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.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": "RitKjRNhCwPQ35Yiy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:27:49"} {"_id": "K4ofMNaQffAYg3CNK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "sHnatMzEhaHgdY6Hb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:41:29"} {"_id": "RitKjRNhCwPQ35Yiy", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlink.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": "ChMx8haoKQoqZX4Wy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:27:41"} {"_id": "DHxCmGcJxT9MXP4My", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no (File in link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wAu25LRwzKExPeECb", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:49:20"} {"_id": "eMX9DGYWayj2rDAbG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xYjo3ymiBafyCuudq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:39:20"} {"_id": "Ev5TouZPwRw7rKE2e", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tt:Trash : t in empty\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": "z6rWtABZhkcrSPodz", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:10:49"} {"_id": "33QgETcqYYKP8acQd", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ccMJAhGspd5gMWyAH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:56:58"} {"_id": "rccqi23kLNrFCb3sd", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "YTSDNTcbSRcXnrXD6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:49"} {"_id": "ytiMWgqWtpBjxWGm6", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in empty\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rxp6ktP3HzF4eWuDM", "msg": "The name \"empty\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:23"} {"_id": "AEfLYBEcND39n9JmG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "aPBuctciLmXaa38r4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:23:40"} {"_id": "WwKpRh2ZXbmYjJ2d4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1 in f2.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": "8PZctExdiWY6pYfkw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:33:25"} {"_id": "s8TZxnpps39mxidhA", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rpCWWWPyC6i93Pqyh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:28:37"} {"_id": "xvYqhr7nmhHM8uRqf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WzWstQR5XtTfYb78A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:07:12"} {"_id": "okBqE7Xop3oCskvC5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | some g,h : File | f->g in link implies f->h not in 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": "rDyrcyKNDTzEBmmN8", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 492.6666564941406, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Protected:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Protected:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Protected:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-10-1 08:55:51"} {"_id": "t7sCNeSp44k3jffuc", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "xWfCckSq8tPDXdih6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:23"} {"_id": "b5KByeZK2nJAB79Fa", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "zjE9eqpv2fHuhzQTM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:06"} {"_id": "Ma3sKcSh9nPvWZEKE", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | (all g:File | f->g in link) implies (all h:File | 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": "6p6btkJ2rtFyZRZd9", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:13:24"} {"_id": "hqGHtfmoXDmJH3ugg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cHh63BWZdMAHuCDYE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:14:39"} {"_id": "rGQXdovs4arDjugYj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zRWgJCsDeJxXHYMGd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:40:08"} {"_id": "4jovbvzNKF5HcBzcF", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GwboZYmXPeHXNsvXc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:21:28"} {"_id": "vEJ5ymJKL2w76eBD3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or (all z : File | x->y in link and x -> z in link implies y=z)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not 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": "XLAgJ8x6M5jZ7a3En", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:06"} {"_id": "hNej5R2woqBSZ3s9k", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to 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": "GKTJYvwQCYoHaYrTK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 18:41:55"} {"_id": "EChMfieJDQNAv7i57", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLink[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "AfJehnS2MiFdaiWAy", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": []}, "nodePositions": {"File": {"x": 444, "y": 199}}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:19:37"} {"_id": "WxLbdhYNBTFpi5HGr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected and f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GjfgSFmFWMRA5WmZe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:56"} {"_id": "xCY59PzYmy9mnpDFv", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DhDBJkocxgTFM3kn2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:57:35"} {"_id": "6btTuhazq38Ltbndf", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "dwccNzwgQm7eREomn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-8 09:08:47"} {"_id": "EsXSiRtaqbLr5piJY", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CzLx9vkC68q86PneB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:52:31"} {"_id": "EjvWyc3wqPjYsigWB", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\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": "ey2ARuYAdbJGwFYfn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-10 14:46:58"} {"_id": "jMCm9XBh87R9krd3G", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qRh468n9GR9JsnWry", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:34:49"} {"_id": "SujZ2bEkqw72QHPGw", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tsome f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d9r2CSW7Q9p34ckMz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:54"} {"_id": "esWA5hdQsbsPQPiET", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f1:File] {\n\tsome f2 : File | f1->f2 in 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": "ytiMWgqWtpBjxWGm6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:58:08"} {"_id": "qknwm8MZTn86fecD9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\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": "uCCfJnERiQZEueBgd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 10:38:10"} {"_id": "iSpRzB73FuEoTMhp5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7rJ7NukJZNrxXxN3H", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:20:57"} {"_id": "Gy3TeRoZzkM3ZPaKJ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f: File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.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": "fbWpiA8MYHHFpcFzD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:54:21"} {"_id": "j8MkDwL6RPr2FL3au", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\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 ~link . link in iden\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n no Trash.link\n\n}\n\n/* There are no links. */\npred inv8 {\n no 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": "kj3v3A5SsvvNcaFKM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:56:32"} {"_id": "PDkaGEuL89jBPA8qF", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "RktgyftsibJsrjByd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 10:22:57"} {"_id": "pxiPt3HZzrtow3Bw5", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "DouHu5MK7YKXZdvyY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:06:57"} {"_id": "ajJyRxhQXNtCm6gun", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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": "o6Qr4TPuXc5bLwGqe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:22:10"} {"_id": "zcZK7cw594iE8nvrr", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\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": "MTFG3sk53KRByHgHS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:06:21"} {"_id": "xbEbK9AwqihzgEQv3", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link implies (x (not in Trash) and y (not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zFa5zC4PH4yw9PNkw", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:50:17"} {"_id": "6fnHkZnHiLgr3dXvw", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | (f1->f2 in link) in Trash implies f2 in Trash \n}", "derivationOf": "vm2HNSCY89YgaThqk", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:19:32"} {"_id": "rAWtLCbNmuq8NeSKQ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "p6JxyJxQ9jeMR4pXc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:25:09"} {"_id": "ZZxQvbBHQdtuPtvcx", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) -> (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8cLyHxeCh2TDtihGb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 15:59:10"} {"_id": "h4HxRtsr4wrRyiy5K", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implied 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": "fYNi8ALuzJ5B7knsB", "msg": "The name \"implied\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 09:59:37"} {"_id": "JYfGf9guEhhhYrZef", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "xvAcpGs5bJEnYNDHD", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:32:32"} {"_id": "QQQzDqn4v8LLkxCkG", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "n5dPkpNkXLLsfL52D", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File": {"x": 493.60833740234375, "y": 199.1666717529297}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "Trash:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-9-26 10:04:14"} {"_id": "wPaSkjwzfLic8BXxu", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File b:link| f->b implies b->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": "9TB5BrMu6Z2heiGBq", "msg": "There are 3 possible tokens that can appear here:\n, { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:44:24"} {"_id": "ySHnkGYqriZybL3xc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\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": "rkTBMBr3LqLERwGsH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:29:59"} {"_id": "5GgZZurZZikbkT9pR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "ThDjEeHrMLotx2YNp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:46:35"} {"_id": "aBaNKFiSAWaNEshno", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GQp2pjEWx9PthXD8j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 08:36:42"} {"_id": "yzwp3YnPrLyWkdLmW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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": "nhWHBNtcBYmQLrM4H", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:37:05"} {"_id": "jKncqPdTfjKXwA8zu", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WrLyGuewbrxtJPzaZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:05:35"} {"_id": "ReY6ButgM9Wq6oANP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x3vZ5BDx9MYQYApCe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:47:36"} {"_id": "M5rQPrMMmKEv2ChcM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nsome x,y : File | x->y in 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": "Aca8oXQMirKH8Jzhf", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:42:59"} {"_id": "AHZFkguAnJsAQJ84Y", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in File\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kqqeEM688nRovqXKD", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:48"} {"_id": "qzC6i8AhQWSkdBS7E", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g : File | f->g in 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": "PhLxqsQWbkexA7SGs", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 09:09:17"} {"_id": "MCMxDqci9KErDbXQx", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h4HxRtsr4wrRyiy5K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:59:48"} {"_id": "GjfgSFmFWMRA5WmZe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "af6hFQQeFqrbDEw7s", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:31:25"} {"_id": "W9PcSW7StNnaDqLy7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1 -> f3 in link and f2 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "6YiDW4nsDN9CTmJ9S", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:16:28"} {"_id": "ar3wmkBb6XW27GGNz", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in 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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PEhku4TvHst6smsmt", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:32:56"} {"_id": "zzcoLSMfGrM9aj2gD", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "sig File {\n \tlink : set File\t\n}\t\n\n\nsig Trash in File {}\t\n\n\n/* The set of protected files. */\nsig Protected in File {} \n\n\n\n\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n\n\npred inv2 {\n\tall f:File | f in Trash\n}\n\n\n\n\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n\n\n\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\n\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\n\n\n/* There is no deleted link. */\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n/* There are no links. */\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "mnL3YRyxsR6gxx2Q9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:28:39"} {"_id": "nsu7sNbiAsPE6Qaj2", "cmd_c": true, "cmd_i": 0, "cmd_n": "check$1", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 5\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sH7gdcPfWp63XmXPQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:41:36"} {"_id": "oKkcDK5PEZaRtQswm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | all g : File | f->g in 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": "Q5RY3GeDPDRZrh8N8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:50:34"} {"_id": "ds8ynqk8CEFB4n3jG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 14:38:15"} {"_id": "AGK3GEfHmsS4MkhDD", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "PkEbQsEqY3c77tWk9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:05"} {"_id": "aM3ygcFHskvdoCebf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tKpS8Wgq2AePTCuWX", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 14:53:39"} {"_id": "8FoSn5FEtsi6sdMvF", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\nsome g : File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\nall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f,g : File | isLinked[f] and isLinked[g] implies f->g not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\nall f,g : File | f->g in link and f in Trash implies g in Trash\n}", "derivationOf": "MrCRvvXHNMM9TCesw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:39"} {"_id": "8pzaAjHYtf273G8s3", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : File | f in Trash implies f not in Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n all x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x, y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "PN9MSerYkzNY5gbHe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 11:32:53"} {"_id": "SSHNBFgStHA5E6dWE", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Trash | f not in Protected\n }\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ipoGnBFxXu2gXcaav", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:44:13"} {"_id": "e2z7v5cyHgTPxrHoX", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "5h96cW6uzMY6oJydh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-10 14:48:20"} {"_id": "PXaHfhXodHxuDBr8d", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash and f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "9gtaEpfgayqSq6Co2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:47:20"} {"_id": "hRewCcCjpBMWcG4RZ", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tno Protected in Trash \n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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": "EP8ATXx7kREWmPGdT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 10:47:57"} {"_id": "wZJcAZ7mE6h3SHRZH", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "2ucbb5zsdgDZMKhta", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:17"} {"_id": "rnfZYAghFzXFzaurY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ycs4XvSvoFxMn2zk7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:33:22"} {"_id": "H4Fjv4H2qQ55GiZgG", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "wXevEv2eHoAskEQq9", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-8 09:09:51"} {"_id": "uNT6RrsFcNrgSnRxN", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link implies 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": "HKE8XGHNjF63wHk5S", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-21 16:32:48"} {"_id": "wksGHQzFBhqXjiCHW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MJkkuYsTrnCaPbWsm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:50:50"} {"_id": "p6JxyJxQ9jeMR4pXc", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "5NHC9Zdjqgrsf3wXg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-3 09:25:06"} {"_id": "aZXfuxaJrMhAs8pKA", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : 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": "JpB5mXPTqcPctfyCC", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:16:05"} {"_id": "CAKbS2CR7SChR8cXy", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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": "2NFcc7hcHjN5aLDMW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:13:45"} {"_id": "6JespmPkatKv7T9Pf", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n \tall f,g,h:File | f->g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aDAqdXrE7nDv7NzAN", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-4 12:29:09"} {"_id": "d4GcXJFjpGdwdZofv", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f1:File] {\n\tsome f2 : File | f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | (isLink[f1] and f1->f2) implies not isLink[f2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | \n}\n\npred isLink[f1:File]{\n\tsome f2 : File | f1->f2 in link\n}", "derivationOf": "FucRTifnYgwbXNPLL", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:10:43"} {"_id": "Bo48gjv6ntJyMy8Bi", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:not in Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yd2ArCkZPZ5shBZuh", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:41:10"} {"_id": "gQaLHNv5A3ZnFDN93", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}", "derivationOf": "pxiPt3HZzrtow3Bw5", "msg": "The name \"inv4\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-27 13:09:26"} {"_id": "zXLRJYz9ikPcuXamb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xc4TzxHMorByioD8i", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:44:09"} {"_id": "86uw8qY8gLYDKTRHy", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File,l:link | f in l implies l not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "yJ3TjG8aeyxrMhcnk", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:58:27"} {"_id": "wZLhPesfWGNacMx7w", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q63B3oRHqBxWFcJSj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:02:28"} {"_id": "EacNS827XbwbqL49w", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 08:47:29"} {"_id": "6qi9X7FgnPfYZZBXM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "tKjsn7FDKWKhSTniW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 16:47:12"} {"_id": "ebejTEoNxRP7waan4", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:01:56"} {"_id": "ob7F9aBe4B7X5BkCj", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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": "PRDBRmvCKP6p3JdbN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:21:55"} {"_id": "B8mWSB8znsupcLvTK", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall f:File | f.link not in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "L478GF8fKDJmJEAXy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:57:55"} {"_id": "Gwyk2gSG8kTQ9TpsE", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "mZZeiMPBZ6QTPnEt9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 11:38:05"} {"_id": "L9hdg9ajGZSLKasZq", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "EnAZsx76bPAnAa6d2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 14:52:29"} {"_id": "rpCWWWPyC6i93Pqyh", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "znvRQmzEuEgz89yo4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:26:50"} {"_id": "E8eQubZ6jfb4TqYqm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "QK9ckxFKChiQ5dDBJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:21"} {"_id": "S2uwxKEYWSxiMxbji", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n \t\n\tall f1 : File | is_link[f] implies f not in Trash\n}\n\npred is_link[f : File] {\n \tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "F3eZTZNtBX8ACTuhz", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:57:25"} {"_id": "NqxCy7Dx6vYi5emBF", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s4jyk2YNu5ALsu4Fs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:31:35"} {"_id": "QS7zj3bfmsXLNd7yE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "YMzgFvAgeThiRX3CJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:00"} {"_id": "HknRWHh5mienMg3xo", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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": "nzdjKrRtbXsFPmfes", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:36:55"} {"_id": "WFpwQgpfjxpn8naEp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected and f in Trash\n }\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NjZT8QcWn48gjYq7T", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:46:22"} {"_id": "3uPvH3Wmz7ELKfn7W", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5j8YiPRjBy2LWQy4f", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:16"} {"_id": "dYbHtw5oM3KDkDhLz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zf9DDxiCWTDFvBDs8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:32:15"} {"_id": "DKTop2zyz9fKcySYz", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\tall F:File | link.f in Trash implies f.link in Trash\n}", "derivationOf": "A93RZPorQJJrHq3AL", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:14:29"} {"_id": "2sRwQSRnk2LooJkNi", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7QGcxLFpFMeuJpfc4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:04:51"} {"_id": "XQisZqRtBqAKGjfLF", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2,f3 : File | not (f1 -> f2 in link and f2 -> f3 in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}\n\n\n\n\n\n\n\n\t\n \n\t\t", "derivationOf": "TiroY7wCyZegssLtx", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}]}, "nodePositions": {"File": {"x": 349.4140625, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Protected:File"}], "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"}], "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"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2020-1-18 16:44:25"} {"_id": "sBaasujGEiMkvSnzc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 15:59:09"} {"_id": "34vMTxCNkoRuxKY4M", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "GSLQKJppdQDbREhhW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 10:01:31"} {"_id": "Bu3MC5Pfms22M3F5y", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "QF5ArJJY4AyoABiJ2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:50:37"} {"_id": "n2QDm5dyW4qLzP7sp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x 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": "RNLpZZQEhBonsiSH3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:34:20"} {"_id": "ysoTc3fC9WNDhTEFD", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "hzkSyCYrHiGaex8NQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:49:32"} {"_id": "GiiSB5qSkzcpAFbML", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:29:56"} {"_id": "yK9Raa2iSLDuZZ8ue", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "c9jKMn7W9mFJzBxwM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-30 18:07:19"} {"_id": "Rxp6ktP3HzF4eWuDM", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in Empty\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "imtvDKp7RQuRHobFn", "msg": "The name \"Empty\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:16"} {"_id": "ub5jCdLD7bGnc6byZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xCY59PzYmy9mnpDFv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:57:55"} {"_id": "PYST5kEP9xtmaRdqG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sQP5YzqPxBTnj8YeT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:34:25"} {"_id": "8mq4H8NXHEQivBGZp", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | g in Trash implies f->g in Trash \n}", "derivationOf": "yyfsTaQsp7hr8wW28", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:10:04"} {"_id": "B72hgCkpZwQ4v436W", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fgYmCXqpEpNiZknXr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:04:24"} {"_id": "MMDQATEnPGRMM9Eqe", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wdyDui4CpPHoiLssL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-28 15:26:56"} {"_id": "DzDmfazLbggjNzZCZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gYpDjBs7cnCjExhtj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:14:54"} {"_id": "x62A9u2B9wQmAr3B9", "cmd_i": 2, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Proteced | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hRNCQSc2HxpECJD8Z", "msg": "The name \"Proteced\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:30:49"} {"_id": "kpXR7tYM3Bcg58ydA", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | f1 -> f2 in 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": "pMFmSkwDypGESqEAv", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:17:17"} {"_id": "AhgZuSZxjCtktFbgp", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mGisJsbc3GXzMJAAL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:20:08"} {"_id": "SZ8JbTccirHvCEPGE", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : Files, p : Protected | P not in Trash and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "igMKeZAz3nbmXAoMD", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:32:40"} {"_id": "x4evJDKnv48cYPpff", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "2tQ6PyCYe8GK8r87h", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:13:13"} {"_id": "bFGqpb39oj2DgKuog", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gZSTyAaj3SL938qqm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:33"} {"_id": "MrExRLP3kyMAnk8q4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JKQAzfXvjkw6CTcHw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:40:42"} {"_id": "eWxCTYyFGWHGJ4mdH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "SRGhfZx3xk5wP4LMF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:19:45"} {"_id": "qpS32XpuSZGiKgEec", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in Link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\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": "rHZm7jAG5qbkJNqZg", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:44:35"} {"_id": "4hkpZXYfyuA5jFkQJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "e6hnjo5n6W9f7ALHm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:47:46"} {"_id": "9kcvAzmcCDC98nJCF", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\npred isLinked(f:File) {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash, g:File | f->g in link implies g in Trash\n}", "derivationOf": "sacnyrEEKoFwZwFBy", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-9-26 10:21:06"} {"_id": "2W8dEZiRq27PjaMqQ", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \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": "fSvfbwP2jWNDkGr8n", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:58:07"} {"_id": "XyLk4QF6ErXkZ4ATg", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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:files|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": "W2EcAG6NjDbEFHydT", "msg": "The name \"files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:30:13"} {"_id": "XSEdL8oZnrvzkkCxn", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\npred is_link[f : File] {\n \tsome f1 : f->f1 in 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": "8eytXMoKqhf5FNweR", "msg": "There are 3 possible tokens that can appear here:\n, { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-29 16:09:17"} {"_id": "gNtbSJjThZGJPgs3S", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tall g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9DdMyzk8BHwNfHLph", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:01:06"} {"_id": "uxATz8c8xDXqECtDf", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\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}\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": "GvX3cpPcXKywTsFPA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-27 13:10:01"} {"_id": "Ka7ZsJZ6aD5P7vYMC", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\tall l:link | no link in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "WxkXa6NYCA8SsDuXx", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:08:09"} {"_id": "dcKeHJHEaENMyQ7B6", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "8LfTnwMt9MT3tux4A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:51:30"} {"_id": "s4cCyoJpcZv4MC6ZS", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2sRwQSRnk2LooJkNi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:05:12"} {"_id": "uy258bLfvHH8crkgo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f in Trash implies f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RBBxi9Z3wGwm8GaFv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:34:30"} {"_id": "3JLNKvn7dGbfHfRFq", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in File\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GRJr7az4q5nTT6cG9", "msg": "The name \"isLink\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:27"} {"_id": "HKE8XGHNjF63wHk5S", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rggmihe788uNuAKds", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:32:13"} {"_id": "RbCBjxGehDn6kMXy7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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}\n\n\n\n\n", "derivationOf": "4mygCt2hdsEPkCzXo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:08:21"} {"_id": "ZAdZihGy4EPMrHG6k", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z: File | (x->y in link and x->z in link) implies y=z\n\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g :File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "fC9cLDzt5KaZJCzXs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 19:52:50"} {"_id": "CBDacZ82uE6GpaMwk", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ffrhWZw4EsBrZxCvK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:23:37"} {"_id": "XPzTTntMuQk4tqbPp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8XhF8Axsd3y3wJanE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:54:15"} {"_id": "evB9kBrzhQgWKff5A", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "4yPRn5rwYWd3vaK6e", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:37:36"} {"_id": "KDJQFT8xPPWi4sLJR", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f:File | f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\t\n}", "derivationOf": "oR6aJos72XKS8ZNZv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:23:18"} {"_id": "CmbKJjotrQLyZviof", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XqohL6cFBQeb74KMi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:00:37"} {"_id": "5THneTQKTrTaHRWrY", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\tall f,g,h:File | f->g in link implies not g->h in link\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aM5HHng645mMNi9bP", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 16:40:10"} {"_id": "t3n5GzrEDFSRipAqS", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JCwM3343kvfQhyZNa", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:12:24"} {"_id": "NvEs5BbDhHR3YsTyw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z2oy5c3BMp2ZLX3Wa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:23:08"} {"_id": "MwyGL7JWGxyCGBru3", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\t\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bPRe53AcWDdYFhZvP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 14:48:20"} {"_id": "EdjbDceCcgEhJeuYY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\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\tall f:File | link.f in Trash implies f.link in Trash\n}", "derivationOf": "DKTop2zyz9fKcySYz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-17 15:14:34"} {"_id": "9TihpEEvhArYu9hsS", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\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\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,g:File | f->g in link implies g in Trash\n}", "derivationOf": "ksFkNh6sYs9oRMfd3", "original": "sDLK7uBCbgZon3znd", "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": 444, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "this/Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Protected:File", "visibility": false}, {"type": "File", "visibility": false}]}}, "time": "2019-11-1 16:18:22"} {"_id": "Kc6fcxqmtCN4kmEyh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w6yH2GHwFo7FKCjhT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:05:23"} {"_id": "PCAeFm3FufFikQD5n", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "jmnJe4xcZQdqztKW5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-8 18:59:08"} {"_id": "uCCfJnERiQZEueBgd", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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": "yzwp3YnPrLyWkdLmW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:37:36"} {"_id": "RNLpZZQEhBonsiSH3", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x 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": "DdsNnbgZAutvbdfu8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:33:56"} {"_id": "hcGWzFuNTv9PkQJRX", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred inv7 {\n\tall f : File | isLinked[f] implies f not in Trash \n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link \n}\n\n/* There are no links. */\npred inv8 {\n\tall x, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y : File | isLinked[x] implies isLink[y]\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YQ2pM2RyHKvMuoYzL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:09:09"} {"_id": "qFXFx6R8B74HoGjJd", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y,z : File | \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gTNdNhKA2vdcbsDPo", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:04:22"} {"_id": "Rggmihe788uNuAKds", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SHjQrpvniR5Yphf7N", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-21 16:32:07"} {"_id": "P3Fga9LfjKKYdSjAc", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nbmQE3z7NKcTqPBW7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:58:39"} {"_id": "P7pf22QunvGzzEw65", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "nyEYKTPZ5rXkWw7bo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:06:29"} {"_id": "juSRxs8S8Dc9hBSC7", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 21:41:10"} {"_id": "Y7ocCtfQn6fahgSni", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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 inden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tYtLoW2BbZAnM7jSN", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-10 14:47:44"} {"_id": "F3eZTZNtBX8ACTuhz", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f1,f2 : File | f1->f2 in link implies f1 not in Trash\n\t\n}\n\npred is_link[f : File] {\n \tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "eBcx6tMnZm2Jo6AgH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:56:51"} {"_id": "YH7X6H8bSFxJfiLA7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\tall f1,f2:File | f1->f2 in link implies f2 not in Trash \n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KxCy42LKwPfq3pgH4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:45:32"} {"_id": "G9evgT9BkiR7gwg4s", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 { \n\t\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \tall f:File| no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\tall l:link |no File.l in Trash\n\n}", "derivationOf": "BwepsDoEe5jtXFRWc", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 19:06:52"} {"_id": "jDAPcDQJyBCBegDpP", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h,k : File | ((f->g in link) and (h->k in link)) implies (f->h not in link) \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f in trash implies g in Trash\n}", "derivationOf": "WywDbjkcRs8ByK6ko", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:07:29"} {"_id": "EWhJCe3B4nt2D9orp", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dxpqv7ZMeR49aQPpT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:44:28"} {"_id": "8QddMjkbg4AYRtRAM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FqHw25B5M2KWc4p23", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:58:28"} {"_id": "Y4wQwvc6L2oiBj9Y6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not 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": "gSrZenr3s2vZBiLLd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:14:53"} {"_id": "twB92qPDBHzzrict8", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ztoku25Q3cJ9Nvuty", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:31:42"} {"_id": "yEr9HWDFNRtkFiuGQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "akoFz8uEndFP2QirZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:16:52"} {"_id": "CBBAGwgcdS7LZq5uo", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "yK9Raa2iSLDuZZ8ue", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-30 18:07:33"} {"_id": "XTdZDL3LGRXiHPcSk", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "coC3mJMEFoFsusJ4A", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 11:16:08"} {"_id": "tLnkzs8AjQAHpTLdM", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x,y : File | (x->y in link) implies y not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ez6pEkuGS9XxWuJA2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:56"} {"_id": "Xc4TzxHMorByioD8i", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LNoBFPwYTiHZsAGpg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:43"} {"_id": "5h96cW6uzMY6oJydh", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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 inden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y7ocCtfQn6fahgSni", "msg": "The name \"inden\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-10 14:48:14"} {"_id": "9jMitar8bSTFGBc9X", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in l->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": "rynvf5M2jEaRwJ5vS", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File->this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:12:49"} {"_id": "Haq64aZCA3f7GZWMe", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "AmztgwhwQmjT4YjqB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:05:27"} {"_id": "XcR3pYuyBMxpkcuCq", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "nwzp6nH4xw65qFuqL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:51:39"} {"_id": "NcxxnSLumWN2bvkfS", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "QgpLLktk5tZ2t9vha", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:08:29"} {"_id": "eGnTMx4rz3BcYYGM5", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "tW4FQ2wzTnLHLiwHL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:26"} {"_id": "XTaHZWuc9PZvgByCK", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f.link implies no f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "4bFv8KJYzRkT98amW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:20:17"} {"_id": "z4nzBAf7NiS2qk2sJ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | (f->g in link and f in Trash) implies g in Trash \n}", "derivationOf": "bhmKMZCKSNvENWkoY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:08:12"} {"_id": "hiN95Gkx2PQ43NNRo", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f->g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R4vxgtbKZmCBprqn5", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:45:56"} {"_id": "mxF2MEMN9bRiJSDD6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wEhrN2r6DHft9o2Bh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-11 16:26:52"} {"_id": "tjguSAZvPow3X3ezi", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : Files | 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": "HaR2R9xB9tNkf4ztd", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:35:08"} {"_id": "WKwkSuJhLABrXsHJz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "vqu8ETSNy2pz89mBp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:35:09"} {"_id": "BwKHuE9gCy6X4Mk3j", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and <->z in link) implies y=z\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": "mWRC4pRY5SX5k4udD", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:52:39"} {"_id": "JavH8Jj6b94ge4u3Y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not 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": "XsnL2Lw7fs2GwFuvc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-1 09:13:17"} {"_id": "3adbr4ShB3iFQFck5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "u3mkkA8LHrFYenGCs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:21"} {"_id": "WzWstQR5XtTfYb78A", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "4exTufKdsZx6piC6Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:07:01"} {"_id": "2mwZnew7hFCQ5Rejo", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\n\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File , all x: Protected (f != x) implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\n\npred isLinked[f:File]{\n\tsome g:File | g->f in link\n}\n\n\npred isLink[f:File]{\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "znCC6tSt7LAzQovLv", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:09:42"} {"_id": "Kh9k7hivd6qMRoL6B", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ettAcZ4xRdazSSqGB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:56:05"} {"_id": "agyqpNGitDF9T4ZkS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:06:06"} {"_id": "2wPTopJMha8PGN6eq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:32:00"} {"_id": "3NTF7AkqSw5MaywTG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \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": "PxJNezDvS8ED4J6nM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:06:29"} {"_id": "Fn5Yq2ey7euM5ZNbF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n all f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YjQXBCujAybNjMrhN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-28 15:39:54"} {"_id": "bosG7S4KDgwYoxNmq", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y : File | x->y in link\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YATwi7HsCXDWM52Su", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:46:12"} {"_id": "AMwtnQZmi6rqzbvjz", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | is_link[f1] and is_link[f2] implies f1->f2 not in link\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "Kq3eKGEMqgpnDdz9W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:06:30"} {"_id": "EK6MQHonqTgj9isH3", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t no Protected & Trash\n}\n\n/* All unprotected 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\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": "ftuWQhuEQEyN5rJxZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:16:11"} {"_id": "GwboZYmXPeHXNsvXc", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in 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": "iSpRzB73FuEoTMhp5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:21:16"} {"_id": "C7cXQDzJcXGqMYZdS", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l : link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\t\n \n\t\t", "derivationOf": "qBP83HPaC5h8S2eLB", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:22:51"} {"_id": "6hTDG8aza69pXrp6L", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:12:36"} {"_id": "oQhxJGxZWxBrWZsfC", "cmd_i": 1, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n all f:File | some f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jbFvykkJr56FNWDb8", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:34:22"} {"_id": "zjE9eqpv2fHuhzQTM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 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": "JYfGf9guEhhhYrZef", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:32:44"} {"_id": "AXFnDGeHEHitya3dt", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "Haq64aZCA3f7GZWMe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 12:05:54"} {"_id": "J9AQfGSoeWxxv88WC", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hqGHtfmoXDmJH3ugg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:14:45"} {"_id": "rHZm7jAG5qbkJNqZg", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall l:File | l not 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": "G2Z7wXrbQf6RJPCwS", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:23"} {"_id": "ksb5dSLSY4zQaTErK", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h : File | f->g in link implies g->h not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f->g in link and f in Trash implies g in Trash\n\n}", "derivationOf": "zPRn2HsG2WHKJsXBq", "original": "sDLK7uBCbgZon3znd", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [], "edgeStyles": [], "showAsArcs": [{"relation": "general", "showAsArcs": true}], "showAsAttributes": []}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}]}}, "time": "2019-10-1 09:33:52"} {"_id": "s6N5nT9xBvGW2a7fH", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: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\tall g,x:File | f in Trash and \n}", "derivationOf": "9AjEE6CWTSbnqwDgh", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:23"} {"_id": "ycmywPEXoiPE7HTdn", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tf:File| f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "segMw7o4yTkvF5Ytu", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:33:16"} {"_id": "DhDBJkocxgTFM3kn2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:57:13"} {"_id": "FcJYSPor27fwpLLxL", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protecred 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": "CSe9D5HskDiyHQoH5", "msg": "The name \"Protecred\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:36:11"} {"_id": "cGM6qzKrxiq6kNon7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f : File] {\n some g : File | g->f in link\n }\n\n/* There are no links. */\npred inv8 {\n all x, y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AHZFkguAnJsAQJ84Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:05"} {"_id": "XGo5rWooj5PjDrnfC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "RnNkw2tuHLadqw8Nk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 08:10:00"} {"_id": "akoFz8uEndFP2QirZ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "z7HYBz922MzRE9JYZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:16:44"} {"_id": "CAKosQN48AdtZdsut", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\talways(all f:File | (f in Protected or 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": "6vhssDTk58g8dCkyE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:36:43"} {"_id": "qnQ5EbkWqtMChWAGj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 no Protected & Trash\n\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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jjRbxq7LR6xsRzp9D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-12-2 11:15:29"} {"_id": "apYAsAnrihW2MS5m6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f : File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\n}\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uRHCcjKpdb69xAG7y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:54:34"} {"_id": "cSJDaRfb4CWtXSc9a", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\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": "G4xcPwnDTgAYQQLma", "original": "sDLK7uBCbgZon3znd", "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": "Int"}], "metaSubsetSigs": [{"parent": "File", "type": "Protected:File"}, {"parent": "File", "type": "Trash:File"}]}, "nodePositions": {"File0": {"x": 470.3937683105469, "y": 199}, "File1": {"x": 235.19688415527344, "y": 199}, "File2": {"x": 705.5906524658203, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Protected:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Trash:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Protected:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "Trash:File"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Protected:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "Trash:File"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Protected:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "Trash:File", "visibility": false}]}}, "time": "2019-9-26 10:10:22"} {"_id": "5MtjLSp5DTnhtFTEu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "oSGussweQtKTjZnx2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:05:43"} {"_id": "NmDkAnv7HZcR6G2Zp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4NeijvNHJptRLaqp6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:16:31"} {"_id": "fogx6i3ctDYMDMWs6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash in none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:19:17"} {"_id": "d9r2CSW7Q9p34ckMz", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tf in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ycmywPEXoiPE7HTdn", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:33:27"} {"_id": "iFmtS2RHoG3ji9F9X", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f: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": "LweuJ8ue5Xg4BvpJ2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 13:46:58"} {"_id": "4qNgCzuBoDxsguQYj", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \t\n \t\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\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t~(link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tK6t4k6AE3k4jBXNg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:36:37"} {"_id": "3huPz6RhQm8fA7qA2", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x 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": "Bs48wxn8bMiosGMof", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:21:11"} {"_id": "3dZnW67SukL2da3XF", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\t\n\n\npred isLink[f]{\n\tsome g:File | g->f in link\n}\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XTdZDL3LGRXiHPcSk", "msg": "There are 3 possible tokens that can appear here:\n, : =", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-12 11:17:07"} {"_id": "PRDBRmvCKP6p3JdbN", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = Trash\n}\n\n/* 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": "4jovbvzNKF5HcBzcF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:21:45"} {"_id": "pt68EnmuyJWEm6aoD", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fYnRmYMzqc48c5BJ6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:18"} {"_id": "2pibP38ykm2yEa6pk", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "Y62qcPPgLX9xXf4Mz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:12"} {"_id": "aDAqdXrE7nDv7NzAN", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\n \t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n \tall f,g,h:File | no f->g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s8TZxnpps39mxidhA", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-4 12:29:01"} {"_id": "Eq9mMw6dp3c7Rr3nz", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\npred inv4a{\n\tall f : File | f in Protected implies f not in Trash\n}\n\n\n \ncheck {inv4 iff inv4a} for 10\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 x, y, z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hLkS22YbKFeifWNoz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:01:04"} {"_id": "oQpMxQ7BzxsZfEw9g", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\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": "gXyiJMgXFijQwoj9E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-8 23:24:10"} {"_id": "q6mngjYaS54d3N9cu", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CYRXo4kEbDGPq5S3M", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:31"} {"_id": "5u98QyZ7tKSqFeGCS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Bp5FhiReaf3YD5DpE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:10:56"} {"_id": "g85RF9RpMh7xEBJTo", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : 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": "sDLK7uBCbgZon3znd", "msg": "The name \"g\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:15:23"} {"_id": "n5uBcDFiANmoCBCe3", "cmd_i": 9, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tFile.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 link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash no Link\t\n}", "derivationOf": "KY3zNBa3Qek2KWxym", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 11:44:45"} {"_id": "bXbPDCXamKtecy8YK", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 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": "4tuv6v2JnaHqtfCGd", "msg": "The name \"FIle\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-3 09:43:25"} {"_id": "TX7RWqy3bftXWCEsg", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1 -> f2 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}\n\n\n\n\t\n \n\t\t", "derivationOf": "W2wEicQEcgooQp9Xp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:33:14"} {"_id": "brTh5cBHeAGCweADu", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y :File and Protected | (x->y in link and y->x in link) implies x not in Trash and y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gGFq2ajSPRiPw3JyT", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:53:11"} {"_id": "HtCJNzwRGKw9RaRGo", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\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\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\t\n \tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | f->g in link implies g->h not in link \n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "Tot44YatupZ6ATFpR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 17:18:23"} {"_id": "MPbd74ibsJ8FdJgYk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xd8PrDwA2EmqWpmLY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:46:06"} {"_id": "jbFvykkJr56FNWDb8", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b5KByeZK2nJAB79Fa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:02"} {"_id": "r4pvaSLCQDGLNjxhh", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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": "RseJo6eeci3serQ2n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 12:08:26"} {"_id": "Z2nsG9w9omKX6NsBS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z: File | (x->y in link) and (x->z in link) implies y = z \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x,y: File | (x->y in link) implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y: File | x->y not 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": "hzyrzBrMeJDB64Cna", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:52:18"} {"_id": "c9jKMn7W9mFJzBxwM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "6c7RjycRrBziY7y7P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:07:00"} {"_id": "2fyabsWY9obwuxyfc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:29:46"} {"_id": "apmCitkBnEuPBCT3B", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\npred aux1 {\n \tall f:File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f:Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\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 x,y,z : File | (x->y in link and x->z in link) implies y=z \n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] { \n some g:File | g->f in link\n}\n\npred isLink[f:File] { \n some g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | all g:File | f->g in link implies (all h:File | 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": "Ma3sKcSh9nPvWZEKE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:13:33"} {"_id": "mWRC4pRY5SX5k4udD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\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": "8x5KBjWGZpfXxksTX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:52:25"} {"_id": "GK9GuaMGEHcM4DyAM", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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": "wHWNaCXYAownSZa5H", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 15:06:55"} {"_id": "BZLv82mwkfox9kJde", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\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\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\n", "derivationOf": "HshrBqp7bQMY4dee8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:08:35"} {"_id": "snx4chTKytThD4f6m", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "dcKeHJHEaENMyQ7B6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 10:51:31"} {"_id": "HvCLT6WkswFCTbBez", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | isLink[f] implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link and y->z not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yqnphzzZvfKDFm3ra", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 10:03:43"} {"_id": "QNRgmzKPjENdeuKtq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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": "L5LRfCrbPrThQfJ8b", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 16:57:15"} {"_id": "TkMMMcfcKxRzfSwih", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : Protected | f not in Trash\n}\n\n\n\n \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 x, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\npred isLink(f:File){\n\tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HGxyYGy3JbyQCmoXM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 10:04:26"} {"_id": "6yPgbvEzHKq9uzbiC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 \t\n\t\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\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\n", "derivationOf": "BZLv82mwkfox9kJde", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 16:09:06"} {"_id": "4mygCt2hdsEPkCzXo", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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}\n\n\n\n\n", "derivationOf": "DsvcmJRwrY7zH9seR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 15:53:42"} {"_id": "EZ5u7YARRbcp4Fcwv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f 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": "G9ReHYC5tPCBihiCk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:39:12"} {"_id": "E7HHHTTdNGwZbKXpS", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n\n\n \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}\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": "gQaLHNv5A3ZnFDN93", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:09:32"} {"_id": "wQZXhn4XRDnEB2dfi", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "QHWqjWoxSKusHFLML", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:05"} {"_id": "EEXyut8Qwii3NaNuM", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7RGdDP3XLuAnszM5u", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:04:21"} {"_id": "jWgNebbM4J5M72Abd", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "y8cKp3r6NznqHBwhu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:30:01"} {"_id": "ZDB9TuSjqm29s6Bve", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux1{\n\tall f:File | f in Protected => f not in Trash\n}\n\npred aux2{\n\tall f: Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eoBod7TpChabe5Lwr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:45:40"} {"_id": "gSrZenr3s2vZBiLLd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\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\tall f,g: File | f->g not 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": "JavH8Jj6b94ge4u3Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:13:32"} {"_id": "iscNmPRGfheaqqZ7G", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "KNaBP3kRKDkGuDxNn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-17 16:51:13"} {"_id": "KScKKTqNQWGXC3g7D", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected 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": "maizPvm7NKbwMLWiH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:10:18"} {"_id": "owG7Cyf6JdSKbECbw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File| no Trash\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mojm2x4bHEF4Jkvpa", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-1 16:07:31"} {"_id": "rp5ggJ4rZgotLoiG7", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n all f:File | f not in Protected implies f in Trash\n\n}\n\n\n\n\n\n/* A file links to at most one file. */\npred inv6 {\n \n all f,x,y : File | (f->x in link and f->y in link) implies x=y\n\n}\n\n\n\n\n\n\n\npred isLink[f:File]{\n\tsome g:File | g->f in link\n}\n\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\n\n\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLink[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n all x,y,z : File | x->y in link implies y->z not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash | all y : File | x->y in link implies y in Trash\n}", "derivationOf": "FCvf7W4TmCLJdrZ7j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:47:08"} {"_id": "6kEowmXR8Ghs4EPTv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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\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": "HTrh45r8Hc94Xir2H", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-12 13:45:36"} {"_id": "WWKGmrHGieeKHAM8D", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2 : File | f1->f2 in link implies f2 in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not 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": "NQieDsCqct6jXLoXL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:43:50"} {"_id": "uD7PHkbW9wyPF36kn", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink (f) implies f not in Trash\n}\n\npred isLink (f:File){\n\tsome g:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cYdA4iqQWyBWu6L7y", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to pred this/isLink.\nThe parameters are\n f: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:54:50"} {"_id": "YPbRwpWR3n9MYxuns", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | 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": "SAQZNXTofc8yXjFYN", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:01:09"} {"_id": "5NaDsuHR2r6Amm4oi", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RYSLrkz9jmSdEwbdJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:27:12"} {"_id": "ipoGnBFxXu2gXcaav", "cmd_i": 4, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Trash | f not in Protected\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Bo48gjv6ntJyMy8Bi", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:43:52"} {"_id": "NQieDsCqct6jXLoXL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2 : File | f1->f2 not 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": "nCdZ2NijqfMhaJXnD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:40:24"} {"_id": "ZbwizZDX9nQ8oA6M7", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n some f1,f2,f3:File | f1->f2 in link | f1->f3 in link implies f2=f3 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\npred isLinked(f:File) {\n \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dbA8LaQKuk6enNeWB", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 15:37:56"} {"_id": "RYSLrkz9jmSdEwbdJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:26:49"} {"_id": "LvSLGiAgYfp8qurgQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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 \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": "RbbwgmWu7Br86u3ft", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-30 18:11:32"} {"_id": "BpCxXucywQdt9BgkT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x -> y in link and x -> z in link implies y = z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x, y, z : File | x -> y in link implies y -> z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n \n}", "derivationOf": "PEv84uuhrPKZNQyrx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:20"} {"_id": "DRyFEDuzvCNvC4Atm", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\nall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f,g : File | f->g in link implies f not in Trash and g not in Trash\n}\n\npred isLink[f:File] {\nsome g : File | f->g in link\n}\n\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P7yBLn3Cz8SmW5LAv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:57:21"} {"_id": "PpcP9Q2cBm6QvokaF", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "a6TkGo2roRogT2gkG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 20:52:15"} {"_id": "Y34hjADaq2W2Fu2aA", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in 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": "TNLrQe8C2MdjSaNjt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:36:38"} {"_id": "amhnDtqXi4R3YArJj", "cmd_c": true, "cmd_i": 10, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n\npred inv7 {\n all f : File | isLinked[f] implies f not in Trash\n\n}\n\npred isLinked [f:File]{\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n all x,y : File | x->y not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n all x,y : File | x->y in link and x in Trash implies y in Trash\n\n}", "derivationOf": "xNbsHH7o7hovjXis9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:10:03"} {"_id": "9dkdBgqpL4s4P3nbB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \t\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\n}", "derivationOf": "Lm3mswycYmLfPahGP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 22:14:21"} {"_id": "GdAWW64HsnKzLC7R2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n2QDm5dyW4qLzP7sp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 07:34:49"} {"_id": "jZ4hm8m8CJY6iKZwy", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P6bCqWxiyRLejrQ5q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:37:49"} {"_id": "Yw69X5M56AJTFpa6m", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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\tall f,g:File | (f->g in link) and in Trash\n}", "derivationOf": "xdCrKjqbEj3qSsz63", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:40"} {"_id": "M5csD2dw2M5zrQjPB", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \tall f:File | f not in Protected implies f in Trash\n}\n\n\npred inv6 {\n \tall f1,f2,f3:File | f1->f2 in link and f1->f3 in link implies f2=f3 \n}\n\n\npred inv7 {\n\t\n \tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked(f:File) {\n \tsome f2:File | f2->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2:File | isLinked[f1] implies f1->f2 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f1,f2:File | (f1->f2 in link) in Trash implies f2 in Trash \n}", "derivationOf": "pkMniip2jP5xmH4nd", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-28 16:19:55"} {"_id": "mxuWnAfBpFCJ3Zuzw", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "xvYqhr7nmhHM8uRqf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-13 16:07:26"} {"_id": "6aGKDGge6WiXRTuAq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | f1 -> f3 in link and f2 -> f3 in link implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n\t\n \n\t\t", "derivationOf": "W9PcSW7StNnaDqLy7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-18 16:16:36"} {"_id": "ivEAkjtAxzfxs4tsj", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g:File | f->g in link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f->g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hiN95Gkx2PQ43NNRo", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 09:46:44"} {"_id": "ZMBu3JDptCCZjb6W4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x62A9u2B9wQmAr3B9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:30:59"} {"_id": "vWwNZTJXfYgKF8pxD", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\t\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\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": "ZnSc99em2gZSmT87f", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 12:09:34"} {"_id": "yaY8vpLNfCBwxvg5s", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z :File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g:File | f->g in link implies f not in Trash and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3NgWg6wtq3NCwSZoh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:47"} {"_id": "tDFuSDAuhzdJABLxt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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 all f : File | f in Protected\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 11:25:01"} {"_id": "YRGG2AZb544rGzkoX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n \t\n File = 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 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\t\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": "sLhgTQnwEqifTDLvQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-4 12:26:04"} {"_id": "FbJH98zPCZ4bKmLP3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\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}\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}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\t\n\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": "pbDsJayxj7brppxpQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-2 14:45:07"} {"_id": "GQXnpojueQwe9Wkjq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n}\n\n \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}\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": "ztd47HLTpznKygE9L", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-27 13:10:39"} {"_id": "XXWXAf8cLRBCm6pDM", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | (x -> y in link and x -> z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, g : File | f->g not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x, y, z : File | x->y in link implies z->x not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SFMBQj9CNG5eGPxed", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 17:17:44"} {"_id": "gGghfB9CNuJZL9NPN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "GHiWJwXqjLQEsdR48", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:37:57"} {"_id": "X5uGBjm3DDiFpGnok", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-8 09:07:49"} {"_id": "3fPHvgdKHd6bg3PNQ", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g:File| f->g in link implies not g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "HyKHrSzdp8Fh5R2hP", "msg": "This expression failed to be typechecked line 72, column 37, filename=/tmp/alloy_heredoc1153941737217087391.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 16:49:58"} {"_id": "HaR2R9xB9tNkf4ztd", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall fp : Protected | fp 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": "49RARaB5onhMYNiyY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:33:42"} {"_id": "BgT5CztjpoC4tixF5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : 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": "CmbKJjotrQLyZviof", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:01:03"} {"_id": "MGGkWX8nmNgM4uQP9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 File in Trash\n\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 Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hkv2xmkZP8wG9iWSH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-1 16:05:16"} {"_id": "oHkPrfrRDeFD57n4E", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ub5jCdLD7bGnc6byZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-2 09:57:57"} {"_id": "GmJvuWRBmSvkLarWd", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XCfe7ft39siyxJY4z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:30:20"} {"_id": "9ph7ZbtGWe2gBFCYp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-2 21:45:10"} {"_id": "XhNctYTLfsd2bsrPh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sBaasujGEiMkvSnzc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-29 16:00:15"} {"_id": "fCPkwYQti4enXAtww", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \t\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected 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\n", "derivationOf": "KtjjAraL2FdgXXvha", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-18 15:41:18"} {"_id": "u5awpkCRErxt6GLfa", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one 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 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "m7fii49scQeyKh3rN", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-8 18:38:59"} {"_id": "QqTMgakhZLaphLEdX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n \tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n \t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n \tall f1,f2,f3 : File | (f1->f2 in link and f1->f3 in link) implies f2=f3\n}\n\n\npred inv7 {\n \t\n\tall f : File | is_linked[f] implies f not in Trash\n}\n\npred is_linked[f : File] {\n \tsome g : File | g->f in link\n}\n\npred is_link[f : File] {\n \tsome g : File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | not is_link[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1,f2 : File | f1->f2 in link implies (all f3 : File | f2->f3 not in link)\n\t\n}\n\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "SrawLAfoGEGPrc8tv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:58"} {"_id": "Jga4whWvhJk4qJgYh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to 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": "224v4aRQeLuPadjsk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-7 13:16:12"} {"_id": "L5LRfCrbPrThQfJ8b", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 File 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": "sDLK7uBCbgZon3znd", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 16:57:02"} {"_id": "jRHZbyyrYdcjDo2aM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f : Protected | f not in Trash\n \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x, y, z : File | x->y in link and x->z in link implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x, y : File | x->y in link and y not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Ro6t883swz66ph2F", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-9-26 09:38:39"} {"_id": "KkNjv8svcCpubngMB", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \n File 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\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n \tall f:File | (f not in Protected) implies f in Trash\n \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n \tall f1,f2,f3:File | (f1 -> f3 and f2 -> f3 in link) implies f1 = f2\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\n}", "derivationOf": "Yt6iygPFaxsESdqjW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-7 22:25:25"} {"_id": "fgYmCXqpEpNiZknXr", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall f:File | not isLinked[f]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4hGC78BC4t4x8BrSg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:03:12"} {"_id": "D4CCcNuRm3yyfdp9X", "cmd_i": 0, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[g:File]{\n\tsome f:File | f->g in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | f not 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": "MaknrYpHxqASR2Tjq", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:02:58"} {"_id": "R3yuvoTLz3tcPJiNK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n \tTrash = none\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\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n not Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JAGZhJR5yxtsSrjgc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-10-3 09:37:57"} {"_id": "BPDoKb7nvDgBN32XE", "cmd_i": 3, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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 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": "oAHYJ5Jwr7wwsN3Ab", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-4 12:13:51"} {"_id": "n4FtH5tsAC9KSwzd9", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall x : File | x in Protected implies x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y : File | x->y not in link or all z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall x,y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x,y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tr44iDrbFWY3sHkhr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:34:25"} {"_id": "WLFpwwuDXdztXRDa5", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\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": "64e4eyPSCqr2utK4S", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-12 10:57:11"} {"_id": "jCuooP6xmQLDdT45f", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\t\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": "kWvCSMGNhhPaJbcML", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:12:53"} {"_id": "4yPRn5rwYWd3vaK6e", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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": "dC5tC9RbXwE5SvkAC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-11-11 14:37:16"} {"_id": "azmWfPPrSuoTfjWPH", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File|f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File|f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File|f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File|f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File|f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies z=y\n}\n\n\n\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n\tall g:File | not isLink[g]\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File | (all g: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\tall g,x:File | f in Trash and \n}", "derivationOf": "Ghc2Rshye4j5LxATX", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:13:53"} {"_id": "DDyzMuhmirBrhikjN", "cmd_i": 6, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies f in Trash\n}\n\n\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File]{\n\tg:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6LDPhTzLpQ9Gv3WkD", "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": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-10-2 08:44:10"} {"_id": "Ez6pEkuGS9XxWuJA2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n \tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall f : File | f in Protected => f not in Trash\n\n}\n\npred aux1 {\n \tall f : File | f in Protected implies f not in Trash\n}\n\npred aux2 {\n \tall f : Protected | f not in Trash\n}\n\ncheck {aux1 iff aux2} for 10\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f : File | f not in Protected => f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y = z\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n all x,y : File | (x->y in link) implies y not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d7pZhKar8PbeYPauj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:51:17"} {"_id": "MZ6p8GCBaJM3X2fpk", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 all f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n some f:File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n all f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n all x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n all f:File | isLinked[f] implies f not in Trash\n}\n\npred isLinked[f:File]{\n some g:File | g->f in link\n}\n/* There are no links. */\npred inv8 {\n all f,g : File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n all x,y : File | isLinked[f] implies not isLinked[y]\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9mxebEXb9zywvQCvn", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-9-26 10:04:06"} {"_id": "oSouXoMZex3PcjaXG", "cmd_i": 5, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig 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 \t \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n\tall p:Protected | p not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | (f not in Protected) implies (f in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1:File, some f2:File | f1 -> f2 in 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": "MqrJtgsBuoynwdhp8", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-6 16:23:13"} {"_id": "NDqKzieGxqLfyNNRa", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h : File | f->g in link and f->h in link implies g=h \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link implies g not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g: File | f->g not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pPTpHNXXAYNRjfJBp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-10-1 09:32:53"} {"_id": "mQemZdcNJu3g46QJ6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected 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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NcxxnSLumWN2bvkfS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2019-11-4 12:08:38"} {"_id": "QBQWHsQ4LWd4fsTfj", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t all f:File | f not in Protected implies f in Trash\n \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x,y,z : File | (x->y in link and x->z in link) implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | f->g in link\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": "PiDKKG3ggftd9uQDD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 09:59:54"} {"_id": "PiKZoYYNykZXcB822", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno 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": "ZFqroZr6skMr9hbn8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-21 16:29:38"} {"_id": "5PMKQutcZwRe5SfHR", "cmd_i": 7, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n \tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f1,f2,f3 : File | (f1 -> f2 in link and f1 -> f3 in link) implies f2 = f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall l : link | l not in link\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\t\n \n\t\t", "derivationOf": "Mdj2qtT4FWfvCS9YW", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-1-18 16:30:51"} {"_id": "KjTuL7tySBk7ogFcY", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall x, y, z : File | x -> y in link implies x -> z not in 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": "DyX4WtHqdN3jMHQ74", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-1-7 17:11:50"} {"_id": "zx492wM9YfR7s5Ss2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,z:File | (f->g in link) and (f->z in link) implies g=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | isLink[f] implies f not in Trash\n}\n\npred isLink[f:File] {\n\tsome g:File | g->f in link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,g:File | (f->g not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\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}", "derivationOf": "TotAFQwwYa2D4gebr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2019-9-26 10:00:06"} {"_id": "zn3w37JzpCkpXnoyJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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 \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": "8mDHMdKAnZSSrfjyQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-6 15:18:45"} {"_id": "QuxqXYNDNxqtXDtwx", "cmd_i": 8, "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f in link implies no f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link in Trash implies f.link in Trash\n}", "derivationOf": "XTaHZWuc9PZvgByCK", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2019-11-17 15:20:45"} {"_id": "gBtcD8p5jxwiKckxb", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\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\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \tall f,g:File | f->g in link implies g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g,h:File| f->g in link implies not g->h in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash,g:File | f->g in link implies g in Trash\n}", "derivationOf": "7WG6SXSwGq4f94eTQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-1-17 22:51:10"}