{"_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": "EYhjWu5sKyLP7hgFJ", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | some f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6F2uqrkXAeuuigPGw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:06:02"}
{"_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": "FxadJp7wL7Ct4FfLm", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "Dehs2hawjZKoSwTNu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:24:08"}
{"_id": "zk5FGht63H8TRCHQ8", "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 t : Trash | t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ciQwtpPLfnaeQAsZv", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:10:46"}
{"_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": "Qv8Xh6jdB6HPS6bKe", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "2dgqq77BjvxsYQvqk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:49:12"}
{"_id": "9bMYDcjnoL5xc2vwx", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "XdGHqYhYYBAKab5rK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:58"}
{"_id": "aa5XkD7e7b43rQkji", "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  \n  all t : Trash | t not in File\n\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 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  all disj f1,f2 : File | some (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": "vkoQ2SM8CuNDXDkwt", "msg": "This expression failed to be typechecked line 68, column 27, filename=/tmp/alloy_heredoc1840830233712391179.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:28:54"}
{"_id": "W2YMqbrDBBtS4m7Hh", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies (t in Protected and u in Protected))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "YWn7gwBkJ7CWpuPwj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:52:40"}
{"_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": "Fx2F2xmeaekX2t78x", "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  Trash.link in iden\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": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:24:34"}
{"_id": "vWLAS2npLFaTPpi7u", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "WXW2KpHArdX6Hw6ZL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:07:55"}
{"_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": "xsW4aAcE98jwYvehA", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies ( l.link in Trash))\n\n}", "derivationOf": "LeMzMmRp8JDgDh69J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 18:22:18"}
{"_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": "4DhPPQj7RAP5H6tY7", "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\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": "sQpHrdXuPNMAiEEd9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:09:03"}
{"_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": "fb2yDaM3ETpQLrv8M", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nPB4LrTrTABoPyauJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:39:02"}
{"_id": "A7qsj4oGqYfWiuvxK", "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 : univ - 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": "oBP6DcKGp25W3Saj6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:52:31"}
{"_id": "mz6mvFrqpxwJgqbKr", "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\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": "grNsxdEkHja2fndAX", "msg": "The name \"Empty\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:27:18"}
{"_id": "hM2MfkoXoERLbRW7w", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | ~link.f in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno f:File | f in Trash and 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": "7bh73og6axsERsBXr", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:28:57"}
{"_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": "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": "hD8fjQu6s5HE8zozp", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Le7NfojBCXgBM8RLQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:27:02"}
{"_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": "d8jeAysu39aTpHF78", "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": "5sJXBon9ytx5R2vWf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:42"}
{"_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": "7FGWYsEXBhCNCq2sP", "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  all 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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "43jEo7KBEj9v6Jiqz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:57:18"}
{"_id": "Prk9ghQNWMWq97yWy", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File |  f1 not in Trash implies f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c7kD9GJkMRRqbfnA7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:26:06"}
{"_id": "EBMch6nMBejyiafvH", "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 [t : File] {\n\tt in File implies no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:25:23"}
{"_id": "Ka2jQhbJnx7GX3SPv", "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  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": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:00:32"}
{"_id": "MicJo7P9rWRq8m66K", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies f->x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "vcgznLHTRfRd7ijYe", "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-10-29 09:21:23"}
{"_id": "jjYFJ8fAsMpSMqZPy", "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/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hBvs2g6c4cfnHpN2W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:05"}
{"_id": "uNf3g8J6jTG7rBFcA", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | (all l : f.link | some f->l)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "qbf9SrEDQSFY75YbD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:03:53"}
{"_id": "MeAAeSkr7vRtAFzkp", "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 | 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: 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": "zdADwyeCavzkGrPZS", "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-10-22 10:42:21"}
{"_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": "AbpP9tJHnkWFKjz6Y", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "asgsR9cdtt7fMeCeH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:49:43"}
{"_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": "9R3qwuTL9eYdEKb4X", "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-10-27 23:37:00"}
{"_id": "QP2Xvboxt2JtP5gdo", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "TPZAbxTmSkaBNbgmN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:49:17"}
{"_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": "nJLbd4CspP6srdKf8", "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\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/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some ff : File | f -> ff 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": "QKTDu62pTDhhXuxGL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:31:19"}
{"_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": "DGRv4aPHApYRRdwwo", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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": "kTHBozsubaPNM7MnG", "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": "2020-10-22 10:33:13"}
{"_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": "wDTnr8unjXNbmjWws", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t not =u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \tall f,u : File |\n}", "derivationOf": "K5KHi9bJrhKLaSo2h", "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-10-28 21:29:55"}
{"_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": "NK5Y5LjeNpAsSCMaZ", "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 f1, f2, f3 : File | (f1 -> f2 in link and f1 -> 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}", "derivationOf": "PBh49yRzzPbRd64w3", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 20:36:03"}
{"_id": "mvJ9wBJttDW3yu3am", "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 = 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": "MoExXBT5Dzt2GGP6n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:39:44"}
{"_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": "53fRL4q6ceEMXiDwe", "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\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aJTYfTLzW3TeCezvv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:27:22"}
{"_id": "CcRmGcCYErT2LnQuC", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "c7M2XYL7gGeAqyD5t", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:49"}
{"_id": "J8jAyh66cymu2FGmB", "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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TAi9Ni6s885FNev9y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-6-15 19:25:25"}
{"_id": "BLwCgsw9gGpEaRT9q", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "akDf26nBtKrptHaYz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:06:31"}
{"_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": "sEchEDmxSCGv4NcTN", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash and no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "o4XsJfC2bEgCCEXxk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:56:01"}
{"_id": "9zECqh33oQLDk2B8i", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies (f1 not in Trash) and (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": "fXLpuYy4ragYowv47", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 02:53:08"}
{"_id": "gAdiacp2k9Xa4a5Di", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all all f,b : File | (f->b in link and f in Trash) implies b in Trash\n}", "derivationOf": "a6aF7nQ7vkSAxCPwX", "msg": "There are 1 possible tokens that can appear here:\n'", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:22:46"}
{"_id": "Z99K6zRBR4oSuvrk3", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.link | f1 in Trash implies (no f1 in File)\n}", "derivationOf": "rrJfWYzwnRA3WEQtE", "msg": "The name \"f1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:36:59"}
{"_id": "TvJGaZTrq53f9e58L", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies File not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "uuv9s55vpu8J2ghS2", "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-10-29 09:24:43"}
{"_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": "bTnDsDsLZTtY7dFNv", "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 [t : File]  {\n\tt in File\n\tall t: no t 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": "9Xmycr9AjpDug2WPv", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:32:26"}
{"_id": "rmv8QDQXL9TAYM6fB", "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 w : File | implies w 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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QMadTMQfyukZyvTjS", "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-10-29 09:47:40"}
{"_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": "xGF6E2LfnbdshLKqC", "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 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\tone x : File | one 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": "Nh4shzfcHyjM6B6K3", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:34:49"}
{"_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": "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": "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": "Rc29bWBRdPxQwy63Q", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pQErRArS8PFrja8hz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:21:33"}
{"_id": "akDf26nBtKrptHaYz", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies ((f1 not in Trash) and (f2 not in Trash))\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "32ggnQHXrGJ9Rfpea", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:00:38"}
{"_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": "AgTvXyCjdjE9CyYCE", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "BwYYeou3TfGbQqWva", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:20"}
{"_id": "QT4b3dqtBTwBNFTrH", "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  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": "oALTvAgMofLf8FpHw", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 15:36:42"}
{"_id": "yRkwrFE5FSzvLDxbH", "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 { all f in File | no f 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": "nMvY6xkANeC86ptJe", "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-10-24 11:02:12"}
{"_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": "HwBp2QiXzZJCj2797", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JSdhjQceb2KGYCtNE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:36:13"}
{"_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": "PjgiYfiYDpgiXYQXR", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "5cdjhWGQyhbhXrBnQ", "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": 282.75, "y": 265.3333333333333}, "File1": {"x": 282.75, "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": "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": "File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-10-29 09:53:51"}
{"_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": "RhPNfqxJnr2FKzE8f", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "QiRjXJMvJRETZbJyE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:04:11"}
{"_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": "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": "9PjtbfJzns7nSh9Pg", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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\nrun inv10", "derivationOf": "mwHv4n2dxmTmGf5NA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-5-12 09:28:37"}
{"_id": "C6EznyaGfnPPCR2qE", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { some f,g : File | all l : link | g->l in link and f->l in link implies f=g\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XRFqBmHWDQLooZqdg", "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": "2020-10-29 09:58:25"}
{"_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": "jjssBt3sWcXTbXWKh", "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\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gJo9WQzgGjnwbycup", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:44:56"}
{"_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": "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": "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": "RNaLYzNKJEiE5bajt", "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 { all t1->...->tn 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": "vJvQgNKggcttd6PDC", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:01:44"}
{"_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": "cvxB5CRG4nfKkXsDh", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | f.l in f)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aE7vNx9rgZGR2JAbn", "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-10-27 16:57:57"}
{"_id": "BFQii8Jp34qCCBfxE", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "FvBHSRMh5JzDDPTLp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:05:37"}
{"_id": "JSdhjQceb2KGYCtNE", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RwYg6PBuv6qcyhbjC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:15:34"}
{"_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": "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": "TYaLyW8dWXXre7pDq", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2 : File | f1->f2 in link implies f1 != f2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "CQFKxs7DeqRgeX5gy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:10:18"}
{"_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": "2zvRHkuTmydjxyHfG", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T3TbBzWNYdj7Pn2Zg", "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-10-28 21:00:39"}
{"_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": "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": "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": "AjPB2A4KQJqn9r8qE", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f2 in Trash) implies f1 in Trash\n}", "derivationOf": "nHzYvg9xPLkeGPBS7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:44:25"}
{"_id": "emYFXHHPQxrmiogY6", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "9exAGTvNhWFawxpe5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:22:54"}
{"_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": "GcE43JRGiZ7W5MwPv", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "jGytKERzgL3ZWd8da", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:05:36"}
{"_id": "KgyeAZbNfZQ7mPhWW", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.link | fl in Trash \n}", "derivationOf": "c5XRkBrhkpQCyND9L", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:37:14"}
{"_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": "qoHj95pigzyKjtuzc", "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\tno (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File-Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SL74Lz8saCLBymnRJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:09:18"}
{"_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": "pz9GXFw7uDsjnyZkc", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HYyZFfRhh3xmSh2Fx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:37:40"}
{"_id": "TFi9MxwmFCiEgpjqX", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies no (l.link & Trash)\n}", "derivationOf": "KKWDoHTDhtKteqPhY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:10:27"}
{"_id": "kkeKHee4gzYjmo5Kj", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "qHbvHMXqwDTFo4DmJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:22:45"}
{"_id": "wpgnLCZasyAJcpSMx", "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  File not in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6AQ3GAqBPoDecstR6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:27:48"}
{"_id": "8ch4LzffG7gqo7ngs", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File,  | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,t,x : File |f->t in link and x->u in link implies t->x not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jo9XKmJSgirb8e7hE", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:23:43"}
{"_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": "bN9i92PpK3wTGgQPW", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6AWe3NaYfE2E6ziYA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:41:06"}
{"_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": "6L6mvd264erqAPfEY", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | link.f 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": "mnDkFBL4pjj5pLSYf", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:29:17"}
{"_id": "nKSaS5pTbzB9kADdB", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies (all f in Trash)\n\n}", "derivationOf": "Qe8ysJmm7WTRyMjy2", "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-10-27 18:36:04"}
{"_id": "KkjwkMHsvedHt2brj", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,x:File | (f->x in link) in Trash\n\n}", "derivationOf": "Hzy4KtpJpdiFkmKz4", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-7 17:53:06"}
{"_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": "CXpxRXMi2FMBotgXg", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File , y : File , 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": "2uWyvxZJvBR6RcJMQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:51:58"}
{"_id": "8asCKv7wL4sje3Dw4", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash and f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "ND3KiAC7w8MCTEyWh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:58:23"}
{"_id": "uN4m879JC5XRTR7vQ", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | z != y and x->y in link implies x->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": "3HjGexsTF3HxnTNwj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:59:31"}
{"_id": "pQErRArS8PFrja8hz", "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 file : File | 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": "t5gABvz99yfhTtzQv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:21:09"}
{"_id": "Sa2iiPz2CAFCRupt3", "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 t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x in File\n  \tx 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": "yt9ebKPeNZHZsWCY3", "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-10-29 09:31:06"}
{"_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": "vAbTTsPwNBPbRJTbY", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "mwDwvtbsAiMptNxTd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:24"}
{"_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": "LS6o6wCrhgcKuQ5bW", "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\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jjssBt3sWcXTbXWKh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:44:59"}
{"_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": "A98biY94RKZN35zSa", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | l in Trash\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tzCLfFXrYv4eq32HP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:14:40"}
{"_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": "tvgKribHcQxqF4War", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tall f : File | (all l : f.link | l not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n\tall f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "pQwxLJpMxSApELcjv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:10:44"}
{"_id": "cTNJxyWmfgzBt4XXA", "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 {\nfor all File f | 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": "NsuYvaoopghXFrKXs", "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-10-27 23:20:22"}
{"_id": "mwHv4n2dxmTmGf5NA", "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  ciao ciao ciao\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "The name \"ciao\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-5-12 09:28:13"}
{"_id": "96sKuoEDPqst5iqza", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : files | f not in Protected | f not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YAk4yzi6WSXQxCrWQ", "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-10-22 10:33:09"}
{"_id": "25Sp3RKqXPdtHNnYB", "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 and f not in Trash\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\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yxm4mT3DQnR4zcKif", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:42:43"}
{"_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": "Q7QRGneTxugEZuGuM", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "5oMoiQZrowFjkEtxh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:24"}
{"_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": "nFuqeJM6ojZoJvy7h", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "fb2yDaM3ETpQLrv8M", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:41:15"}
{"_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": "nvLBRHXuPuvkpGMNQ", "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'= no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "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": "2020-10-23 11:10:49"}
{"_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": "ivG5P2kxJzmBADATm", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "MqCHhMmdQxBcePGAa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 18:50:31"}
{"_id": "DSS7EavnSM3Wxtapq", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f->f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "9jb88ED7hDiXYgHAr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:04:41"}
{"_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": "qDmP4mY9hjKbJjXCR", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\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": "zknkDmQBZ5s3xHxhy", "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": "2020-10-27 12:25:32"}
{"_id": "QoguFK6pBCGvia2NN", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "xMioiCsrXS6sXE5CC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:38"}
{"_id": "9TTZLCFEZtHBj8M4f", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  all t : File | f not in Trash and\n  \t\t\t\t Trash' = Trash + f\n  \t\t\t\t File' = File\n  \t\t\t\t Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nHK6BXd9pZQgaJinE", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:34:23"}
{"_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": "XcmYR55Wdu9GGTRjQ", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "SewsLSgSdoaZ7pGRE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:35"}
{"_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": "ymn9M5R9s9xKFkes8", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "4t2zciZCc69ykCR6F", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:00:14"}
{"_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": "5dWPXK294djLyCbY4", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "cEnToaJtBtAcQ7k3J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:53:07"}
{"_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": "cPsRMBRf8A8sMnSjD", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone link.f \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno f:File | f in Trash and 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": "BeRZik9uShvuqksWe", "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-6-14 22:29:46"}
{"_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": "bA9sFjwpZwJujoWWg", "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": "2tqsfuZZqSmQ7smeB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:44:32"}
{"_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": "yX7N6uqjpprFtvsBc", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,lkd : File| f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "XWatBn9gg32Hem7zN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:59:07"}
{"_id": "M9yhG3rDPKZKEnWYL", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | not no f.link )\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "BFQii8Jp34qCCBfxE", "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-10-27 19:05:54"}
{"_id": "xkRZY8A7TZQfuQt6R", "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, f1, f2 : File | (f -> f1 in link and f1 -> f2 in link) implies f1 = f2  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nzyZ7toobjWtFidts", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 20:25:23"}
{"_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": "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": "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": "LbTwzqSqKE89oCf3K", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "gA8TjaXMGhsjS57tB", "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": 377.99481201171875, "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-11-19 14:54:31"}
{"_id": "kgjL8d5t975Kfiu7D", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | (all l : f.link | l not in Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | (#f.link)=0\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | (#l.link)=0\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HXWyZTPj4xy8hH77z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:03:19"}
{"_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": "7cBxbuf8jheLKABaZ", "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\tno (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File'-File)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HRdQrP9XcRpf4AkA6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:11:39"}
{"_id": "dcoLdYBkRXNmZ5EjJ", "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 { not f 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": "yRkwrFE5FSzvLDxbH", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-24 11:47:28"}
{"_id": "e2QqKTdjE98tCQ3uE", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File | all y : File | all z : File | x->y in link and y->z in link implies y!=z\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ohn4d4DmXNyP2Yfhj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:46:19"}
{"_id": "JyhPH2MduuAxq8jzb", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | all l : f.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": "XGeukEoR4zYEgzHsE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:01:56"}
{"_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": "2i249ZwGY2Mbvpq26", "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  all t : Trash | t not in File\n\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": "BoSZBHBtJPk3mhEYD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:01:59"}
{"_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": "H8opbghKPaTs55CKR", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uBQkyQzrFtvCwpXY2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:19:46"}
{"_id": "jZpgH6mMQBBZeTrDA", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 : File | no t: Trash | f1.link in 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": "M7iDTjHPyiLznA8R2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:31:25"}
{"_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": "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": "W9isi6onbJXnnaeDK", "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  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f->f' in link | true\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k3Y9KELgDBHEQgXDT", "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-10-28 19:25:48"}
{"_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": "S5x8Ds2BxxqMXGj9F", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all all f,b : File | (f->b in link and f in Trash) implies b in Trash\n}", "derivationOf": "gAdiacp2k9Xa4a5Di", "msg": "There are 1 possible tokens that can appear here:\n'", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:23:09"}
{"_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": "SGWyzhzoi97ozQJ76", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File |some (f1->f2) in link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w2z5sGnzb8jsnYK9S", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:49:58"}
{"_id": "c7M2XYL7gGeAqyD5t", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "tvuyZkTLFqocKBqpp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:47"}
{"_id": "w2z5sGnzb8jsnYK9S", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File |some (f1->f2) in link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4RZ93Mjv6zQRbRczk", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:49: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": "mKjdqX3mLcCcMY86R", "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 { 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": "2ZQntjcmxaaRoWjeG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:39:07"}
{"_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": "BgmMozARdNTRLoudK", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the 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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EXJ2XfRLBpAa98Bbn", "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": 586.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": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "this/Protected:File"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"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": "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": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-22 10:48:42"}
{"_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": "iKNeymiY2Sfv9XW7D", "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 File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G9CsBQahwe9RctbH8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:22:39"}
{"_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": "66jpacJatdyiKnBmo", "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/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X7cWv7c5dy8XcKWPz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:40:36"}
{"_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": "NXtJDnqSq4bdhDhXz", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone link.f \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink.File in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cPsRMBRf8A8sMnSjD", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:30:38"}
{"_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": "gWc5aFnwGLNNm7FMy", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {} \n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { \n   \n  all f : File | f not in Trash \n}\n\n\n/* 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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n \n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "W9osfobij374oeMbj", "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": "2020-11-5 10:05:28"}
{"_id": "4Le8WWLbc3uGEWK8w", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f : File  | f.l 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": "sQD8uzwYSfHH5DaKP", "msg": "The name \"l\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 17:00:16"}
{"_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": "NtzAJ2uED5zoakzem", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "DHLBznDSjNq8tD6Xf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 18:42:16"}
{"_id": "KiXhcoqnYczg3XvCw", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\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": "pA6r7YXW8d7udv5xD", "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": "2021-1-13 17:26:35"}
{"_id": "tzCLfFXrYv4eq32HP", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NJBNTGT3p26boBord", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:14:20"}
{"_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": "Q4TtCiQdk48k2G52P", "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 in File | f not in File \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": "SeyhHcfzXFq5Gn2xG", "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-10-22 10:23:52"}
{"_id": "rCM49mFQnEMhkbQRb", "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  no files\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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 \"files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:07:09"}
{"_id": "QQ9gLEPMypa29KvHF", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-22 10:26:29"}
{"_id": "NtuMF6T7365DzYMig", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FE7a65gwThJCJgmnt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:43:39"}
{"_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": "C8qi985EpJvYEEWbN", "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 { all t: File | no t 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": "WYiT7vnTKbtysKxdS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 17:14:32"}
{"_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": "vaMd6r6ot8JqDsXwm", "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}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rhxmJ76nrXXMKPWDy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:29:13"}
{"_id": "oo9p956Cizhx2MYBv", "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 { all f in File | not f 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": "dcoLdYBkRXNmZ5EjJ", "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-10-24 11:47:51"}
{"_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": "aQPM7RWwERPhmXbKr", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t->u not in link->link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "KY2HFY8To5PNT3jYA", "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->this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:41:58"}
{"_id": "FhAtRdhGHq7RZXSR8", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no link.f in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DjrCmNbSfgdHroFEB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 11:46:05"}
{"_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": "Sz87nXt82fsh2eibj", "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  some 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": "bB2hm3WRPNEa85P4H", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-6-14 22:25:35"}
{"_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": "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": "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": "Ntt8EGtGhP6GHWFEw", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all 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": "FcH6zN9CsgajNTS2e", "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-10-22 10:28:25"}
{"_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": "PnLKvXfEqQM9tLuKL", "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  no Trash ;\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "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": "2020-10-22 11:16:13"}
{"_id": "YrJYn4LxGzTzSZrov", "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": "f5qSu2nRkeAj2zQTk", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:54"}
{"_id": "x9uBPJdARvY3XYw7r", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "zbvG6mLEeFupQq8AC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:18:12"}
{"_id": "gKyjRWxZB7GJ4RB8n", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | 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}", "derivationOf": "eyvLdQyKgvhxFaiqM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:24:03"}
{"_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": "eQhXXGANBtnytcL2J", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "ohotmyEww2r58WksS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:53"}
{"_id": "GZ4x998qBmfGmcmfB", "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 {\n  always(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 and 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": "JfxzZb4u3yrzwixdj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:58:11"}
{"_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": "cTTQau9WictDPHxMb", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "KKDYcKbmgsJHLfdia", "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-10-29 10:47:15"}
{"_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": "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": "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": "SBvmRiDu3g2AakSoY", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig 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\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "SLyFacABNuJ9ABYZ2", "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": [{"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-10-27 19:10:45"}
{"_id": "ruW3L6kk8dcvdn6ov", "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 | 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": "WCogS7p4TqYRCGXTh", "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-10-22 10:37:51"}
{"_id": "9E4Qkno9LtZbuqiAA", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File, l, u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "X8NoiG4d3L4ef2h26", "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-10-22 10:43:58"}
{"_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": "FMzaqSDYn7uP9hX6C", "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  \n  all t : Trash | t not in File\n\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": "2i249ZwGY2Mbvpq26", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:13:03"}
{"_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": "5cEQw3EgQdKnvqoFh", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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": "qmvpbDrYaJjx3ojyj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:26:39"}
{"_id": "evKCowLyimyKuZake", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link 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.f in iden implies f in Trash\n}", "derivationOf": "oMj7Hgfrju78DNokN", "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-6-14 22:34: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": "3uchxv2T5Cxytg33u", "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 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: File, y, z: File | x->y in working_on and x->z in working_on 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": "4yqhCjJmYdno9fJPr", "msg": "The name \"working_on\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:14:18"}
{"_id": "dsBH4iGbocRhieji6", "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}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oGEwSWoPRcvKyT9RQ", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:03:38"}
{"_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": "gfwmFusCtHMsJvGeQ", "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  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File, f2 : File | f1 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": "W9isi6onbJXnnaeDK", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:26:29"}
{"_id": "WKWRkJzwJngjCR9YQ", "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 Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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  \t\n}\n\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JZySJ59Gz2srb2EDC", "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": "2021-1-7 14:06:48"}
{"_id": "6F2uqrkXAeuuigPGw", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | some f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5wR35fLs8QdLS4QbL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:05:59"}
{"_id": "tAmyyAivxevjZGZRN", "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 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: 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": "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": "2020-10-29 09:02:14"}
{"_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": "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": "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": "JqoF9PnwYXzPQKyQS", "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 w : File | w not in Trash and w in Protected\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8xaSnvb8BmtyGeHqu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:49:10"}
{"_id": "Djv2D88ttZvEkAPdg", "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 t : Trash , f : File | f->t not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Wg2h5Xj79QN5fq9K9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:44:12"}
{"_id": "DnA9AAu7Ng55JAyYQ", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | one l \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2nTFTW26u5WZTHEGm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:08:25"}
{"_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": "X5YgP8w7QBaEk5fHK", "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 { all  File | no File in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C8qi985EpJvYEEWbN", "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-10-25 17:32:22"}
{"_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": "HdLAmx7tZzXK3bhEG", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 { all f: File | f not 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": "mKjdqX3mLcCcMY86R", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:40:51"}
{"_id": "uECGejudBz2T8hYov", "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, t : Trash | t->f not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cug9QPDhmRSFdEJEi", "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-10-29 09:21:07"}
{"_id": "ZD5cyNHQxMSpLtC6r", "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  all 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/* Some 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\t\n  \tall f1, f2 : File | f1.link = f2.link implies f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "dGqjLTgaiv2p9yq7v", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 15:06:49"}
{"_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": "HS6CdCpN3s9NQQFJL", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1,f2 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": "PRhu5XPahTZrZnxwj", "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-10-28 21:06:43"}
{"_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": "btgmwXiWnzQW3YcqY", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some a:File | some b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PzLqwbwRPpDSQ2BDt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 10:53:41"}
{"_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": "AJSRySpgaESQ6Ymsd", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "MQMnqjcyhMeBXfwcb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:09:56"}
{"_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": "7txWzc9AHZ4NCB49E", "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  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:18"}
{"_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": "zAY4FTqhYea2CtkJJ", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "DBaM32XmdJ3SHtD4b", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:23:38"}
{"_id": "dJyqLDrCmmwMgpLnw", "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": "iWeHCi9Hd7kkeoKcE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:23:15"}
{"_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": "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": "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": "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": "wWKZ3xLfFtPXi85cr", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies f1.link not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "W6bYPChgu7tM5933C", "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-10-29 09:21:17"}
{"_id": "g3WQkDoFXsFWrAufx", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "ghKbyMi77brZsjNSo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:45"}
{"_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": "cH7Yy8JQjidHo7Dit", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link implies f2 in Trash\n}", "derivationOf": "8MJAXkGXCLKerWS6Y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:01:11"}
{"_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": "h4ZXEGtWrm2jm7iaN", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "hYComHFD58PYEKka2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:04"}
{"_id": "ngaqPuPPSMKqAoTLP", "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": "eg4wXFa2zFwpTmXwf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:37:26"}
{"_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": "TJuqjK5eKiT2vdoyh", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t -> u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "qZwPjGDk8nMywScaF", "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": {}, "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}]}}, "time": "2020-10-29 11:13:50"}
{"_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": "ux4cLJ65g37vRcdfL", "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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KNTLrNGcYkdgTXxR5", "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-10-22 10:34:02"}
{"_id": "JJr7KBJzabEdZmxiR", "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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MQABv4byXKmxXCGjC", "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-10-22 10:32:06"}
{"_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": "sMC2Zc9nF9siTccC3", "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 { all t1->...->tn no 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": "GgA4YQs4jm88KDv6X", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:04:01"}
{"_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": "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": "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": "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": "wi3uMaTNy8HXjYgaS", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tlink not in univ\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ADffsY8bFmcTThfR9", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-15 19:24:56"}
{"_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": "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": "cYtx9SM6u94ZDduTb", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f in 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": "ur3Z4grvM297fzDJF", "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-10-22 10:29:14"}
{"_id": "3NhhyiW7PL7DwsvL5", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \t\n\t\n    all f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n\tall f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "YaufvgcYukiYPggDr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 17:13:01"}
{"_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": "b5T9BLxaSYewxyWgg", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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": "ibRbfuuSZ2XKtygvA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 02:40:05"}
{"_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": "wTRz5jATntuYD4AGB", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\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 {\nlink.f in iden implies f in Trash\n}", "derivationOf": "qfXLsLSBHegS3Wmmx", "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-6-14 22:35:39"}
{"_id": "bufe49KXHCrtNpjz7", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File, a,b:File, c:Trash | \n}\n\n/* There are no links. */\npred inv8 {\n\tall f1,f2:Files | 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": "YDvXwqiwov89hkpgp", "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-10-29 02:39:38"}
{"_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": "3LmxhyfTrm4TrbYM3", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t and f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "7x9Z7XtxZB4imtdjv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:44:26"}
{"_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": "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": "uqc8EB64NcB67oaCJ", "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": "PHx7TQTvvsnmPn33j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:12:09"}
{"_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": "oKaPXfrowShEDXxue", "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 t : Trash , f : File | f->t not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Wg2h5Xj79QN5fq9K9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:43:59"}
{"_id": "BwbHTjquTersgTiET", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd 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": "JCiuYdqhDzGjFz6Kz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:01:27"}
{"_id": "QLbaYX2vbkMQB68Yx", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "daapfMFeJL4Z2cHCL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:46:21"}
{"_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": "CdStbvTfZ4FWMeD3p", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "xP5tnRknbDzXt67wR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:16"}
{"_id": "gA5y2j7d2ZZPC6Yw3", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f in File : f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3wz8XsHtrJYQqAt4J", "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-10-22 10:32:22"}
{"_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": "xGvqjFaXMAmLyYfjC", "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  all t : Trash | t not in File\n\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 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  all disj f1,f2 : File | some 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": "iQiLFB86RkmL5ahZZ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:28:26"}
{"_id": "Gx9uQzAo8MyCAs7Kb", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5eJabJHuxocJiP3tS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 20:57:21"}
{"_id": "bhy7z33yFPRx6epm6", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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", "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": "2020-10-21 21:30:47"}
{"_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": "YEFet2BM4suAgaP5M", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "qdM7ffEbX325aaZrB", "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-10-22 10:39:34"}
{"_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": "5sJXBon9ytx5R2vWf", "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": "aPKm7kokBefuWSmg9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:57"}
{"_id": "oscWeTBFWje8g8XQA", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-29 09:07:32"}
{"_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": "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": "9G6zMGR3dDzuPja9Q", "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 { no File in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d57pZbEu9vkJhDnAv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 22:44:55"}
{"_id": "Sat6Wx3AEpqfDoNtb", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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  (some x,y : File | \n}", "derivationOf": "v8YWwQuafbTu3jhm3", "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-10-27 19:58:07"}
{"_id": "WGYDETQay6YHJ8r8Q", "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  no Trash\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  Trash = File \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x 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": "sDLK7uBCbgZon3znd", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:41:22"}
{"_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": "D6tPSSxocheKursRY", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "h4ZXEGtWrm2jm7iaN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:21:07"}
{"_id": "tjJ7dKhmP7Jr8Pax7", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies)\n}\n\n/* There are no links. */\npred inv8 {\n\t(all t,u : File | t->u not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t(all t,u,x : File | t->u in link implies u->x not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5AGAQnRcM9gg2FeQN", "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-10-27 19:49:11"}
{"_id": "HS6g78LgBrmjuGCF9", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "5MvmjXyF7bhH2ejAB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:31"}
{"_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": "kSxpAej4c8yqaKySr", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "nxCg8DWKxJcn5uZnf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:02"}
{"_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": "Kgs6cT2BZ7eiHqBYZ", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zk5FGht63H8TRCHQ8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:13:10"}
{"_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": "FE7a65gwThJCJgmnt", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rWXdstN5nPQ76Es4n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:43:33"}
{"_id": "BntHDiLKM8hofvWne", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,x:File | (f->x in link) in Trash \n\n}", "derivationOf": "BoKCBE6y7HyNE4BK8", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-7 17:52:21"}
{"_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": "McosBAm6697hQcnKz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pDaTyWYY7XzPdvRHw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:02:38"}
{"_id": "vJvQgNKggcttd6PDC", "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 { all t1->...->tn 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": "jneByhqBbQqdHrSgR", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:01:37"}
{"_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": "HsNvGu82oKk4RXJhe", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | ( f not in Trash and all l : f.link | l in Trash implies f in Trash )\n\n}", "derivationOf": "NGse5r6xuKhTGr9DF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:41:55"}
{"_id": "ztsSNzmFP7u2KmTHw", "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' = 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": "ytuXhnBZ6HPeKT2sF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:32:39"}
{"_id": "r7WWmvWvmeEfRSgtZ", "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 t:Trash | t not in File\n}\n\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": "nMtosmSxbAytfF6p8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:38:43"}
{"_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": "PJCEiR6CaSDgvik9L", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in 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": "Kgs6cT2BZ7eiHqBYZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:14:37"}
{"_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": "24sW6axeL6PhwkzF7", "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": "srWkXn6uaKtWzTCmu", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:23:45"}
{"_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": "4aPEL96SCTzzxwRXh", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in Trash implies u in Trash\n  \n}", "derivationOf": "rGaq6QNPdd4mPueJm", "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-10-29 09:10:08"}
{"_id": "e8hePZ97xKYGK5kDa", "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": "2020-10-22 10:18:07"}
{"_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": "9Xmycr9AjpDug2WPv", "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 [t : File] { t not in Trash\n\tt in File implies no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EBMch6nMBejyiafvH", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:25:42"}
{"_id": "Ky37fP6ese2gtux7C", "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\tall f : File | some 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": "t2Xv87KbkpR3xaLkd", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:29"}
{"_id": "syMKMuqtHq2ATXuhf", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "2Ybcm74owcKnmP3ts", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:17:41"}
{"_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": "ZxQnjpNYtoWnj3Fa4", "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 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: 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": "tpiatkFz9aWtr6AF3", "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-10-29 09:04:25"}
{"_id": "xMioiCsrXS6sXE5CC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "Xrg833H2oJAdJTGfw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:36"}
{"_id": "QF9a7x6uuqx8kx2hB", "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/* 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": "NMMTu7W97aXg6hwWP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:48"}
{"_id": "TWWu3xa8dLrumYqC4", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "u4C5gHdxXb6Xkwywt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:18"}
{"_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": "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": "hCPyRAeMrmLjPNkX8", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : f 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": "SDB68dbP2BRGnyLT3", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:21:16"}
{"_id": "JBtfS2CmuJfuDgtzJ", "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 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 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": "95cEKKRTFZQ3LDm4W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:37:24"}
{"_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": "XPLv2gjZgMFGchMA3", "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 & 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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "EXwxRqeT5cakQpYwh", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-4 22:53:09"}
{"_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": "ahtCHbTKnMPWp8Nxn", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hmBacxAHt5298M8pH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 03:20:15"}
{"_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": "nZSpLWCkWmCPQW3ZX", "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{\nno 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": "aCipzs2p8ZEgakKB9", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:41"}
{"_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": "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": "a7zhGgYnymDfci7C6", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (some l : f.link | l in Trash implies f in Trash )\n\n}", "derivationOf": "ygMzaCt3DjCEJndpR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:39:10"}
{"_id": "rqifkeonbT2bsB2v6", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2 : File | f1->f2 in link implies f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "TYaLyW8dWXXre7pDq", "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-10-28 21:10:54"}
{"_id": "68GJ44nzfc2dLE7rm", "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 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 | f1->f2 implies f2->f1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iT4skxf5ZM48y6mgQ", "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-10-29 09:27:27"}
{"_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": "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": "kXvE5rpkJzxuNqy7f", "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 t:Trash | t not in File\n}\n\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": "anyQq6gLA8hCcjDAq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:39:04"}
{"_id": "N24hg5i7gfdcZL6df", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n\n\n\n\npred finish[w : Worker] {\n  w not in PreparedPrepared'= Prepared + w\n  \t\t   Committed'= Committed\n  \t\t\tAborted'= Aborted\n\t\t\t\n\t\t\t}\n\n/* The trash is empty. */\npred inv1[t : Trash] {\n  \n  \tt : \n  \t\n  \n\t\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gCi52WyzX5FCwa3EA", "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": 666, "y": 199}, "File1": {"x": 222, "y": 199}, "File2": {"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/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": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-22 10:33:13"}
{"_id": "YbSD7wiyubxicHsNw", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some l : f.link | f->l in links\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BYLPuz8JPLtTbn3vD", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-30 16:58:54"}
{"_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": "kAbSDpdKTDrPhwCmF", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wGfEh9tyTDodEMXsy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 18:10:58"}
{"_id": "QeSkjem5mKtkue9Zi", "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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File not in Protected | x 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\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gafYaruSzz2WXZRNo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:46:42"}
{"_id": "CYBpgGgpJip9LDoyN", "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: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 f1,f2,f3:File | f1->f2 in link and f1->f3 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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "iDKMqtnjyADuirXzC", "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-10-28 19:56:40"}
{"_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": "Wvjq9AjEXR4RNhExy", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash*/\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "wHSpvDof8gioAYSJu", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:06:56"}
{"_id": "asgsR9cdtt7fMeCeH", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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": "QZQBFah9mfXj2878C", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:45:37"}
{"_id": "daapfMFeJL4Z2cHCL", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "NLL3d8PsQR5CHxoxo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:45:39"}
{"_id": "hAkFtGg3BvShnA9ha", "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 { all t in File | no File in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X5YgP8w7QBaEk5fHK", "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-10-25 17:32:31"}
{"_id": "sN8rREwJeBXYp7c2m", "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 & Protected\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LS6o6wCrhgcKuQ5bW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:45:14"}
{"_id": "ZbRJBkfogyEw52GQA", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all f : File | f == l and l in Trash)\n}", "derivationOf": "fT82q9HXQYKsC4AfB", "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": "2020-10-27 18:11:28"}
{"_id": "ghKbyMi77brZsjNSo", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "KY3gc4itCfszQfFYz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:41"}
{"_id": "442eFotDkDNdb2SHP", "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  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File, 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": "gfwmFusCtHMsJvGeQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:26:46"}
{"_id": "Yu87MvZRKGHFhvtfn", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "QztRfFx5QJvDWZrS7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:48"}
{"_id": "JD4Kjyxuwgx3zJFp7", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y6JkrtpDwLkxzBXgY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:19:33"}
{"_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": "oxmN9YZ59YjymuiaN", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 { all f: File | f 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": "EoF99NQZuQ7RYCpHF", "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-10-29 09:59:48"}
{"_id": "zYBg2EayGgHL6ENPA", "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  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": "zeRxdBpEZrQYMYXpc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 09:40:04"}
{"_id": "nJkhhH6rmv2uGLqao", "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 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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, y: File | x->y in link implies false\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ffdjEyKRHzJyzkgff", "msg": "The name \"false\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:18:54"}
{"_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": "AXtEqG4weZqACKQAs", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8yvSJhKNjEKfnkXZt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:47:00"}
{"_id": "F6YsNGwMJ3s7Hyus3", "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:Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xQ2fc4XnpMbBJjeQq", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:59:47"}
{"_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": "prsshCBJHi26u3MR4", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall 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": "FjXLfN3axgqnQnXT5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:26:38"}
{"_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": "N3FDEA3zTaEadt7su", "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 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: 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": "tAmyyAivxevjZGZRN", "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-10-29 09:02:29"}
{"_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": "wNP4tpT7MbFXfyma5", "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 : univ - 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": "SPk7rnDqtixXfb8vm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:49:12"}
{"_id": "e45YojnmrQwnKufj5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n \n  \n}", "derivationOf": "ZwEfMgDWQiF2ogFuQ", "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": 577.6666870117188, "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}]}}, "time": "2020-10-29 11:46:44"}
{"_id": "6m9kKDgwQuLJALMAE", "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 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 or f2->f1 in link) implies (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}", "derivationOf": "GocgnhqyQMcKGJMPG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:32:55"}
{"_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": "aCipzs2p8ZEgakKB9", "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  Trash is empty\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": "wpgnLCZasyAJcpSMx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:28:18"}
{"_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": "3yx5ADPMDs6a468Mn", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File |(f1->f2) in link implies (f1->f2) not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RPK4vZxZG4mTSYvgu", "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": "2021-1-12 04:51:02"}
{"_id": "e53yhnQHw9osw2nMD", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link and f2 in Trash implies f1 in Trash\n}", "derivationOf": "i2ywd5BaPq2SbjPRS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:02:06"}
{"_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": "pWuYy6mMKvHT9xoh5", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected && (f in Trash || f in 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": "uSq5b5qTsnLY7kacN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:24:15"}
{"_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": "nc49DTYd8asjKuqyE", "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\tall f : File | f in Trash\n}\n\n/* Some 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 in Trash -> f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9uTSc7gWzWe8TavyQ", "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-10-29 09:21:54"}
{"_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": "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": "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": "MM9XjAdcsH4k9ZS73", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kMRtpK4bdfzcZXDGm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:49:50"}
{"_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": "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": "Jid4JrguYex9YLxiB", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, 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": "7aPCJqXdmWQnRqFiB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:21:40"}
{"_id": "oePKJGP9PsALheQ24", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "RhPNfqxJnr2FKzE8f", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:04:15"}
{"_id": "fyfnniKeBJv7CJu6T", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "cSnaSterNgDDTiLZe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:27"}
{"_id": "yHo4rRe5CoP8DqB6H", "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": "m3jESCrzQMjRMoPqj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:35:15"}
{"_id": "qFepdkitiFB3HyEjh", "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 = Trash\n}\n\n/* 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": "NWEhtYHBPwy4ALBaE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:48:37"}
{"_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": "mjgHwMLQQjwP6CPC7", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies ( all li : l | li in Trash))\n\n}", "derivationOf": "Wu7dCudpLfXu6TxWb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:24:20"}
{"_id": "v5kKqK6pdCHPGEDKy", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "kSxpAej4c8yqaKySr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:05"}
{"_id": "4nYugXgWZ5yNQg39B", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (no fl in File)\n}", "derivationOf": "GMMh33PjZsNePL6ZS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:38:07"}
{"_id": "kNDbBu5X4puu27KXq", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4oBWLyS4B6LAv9tK7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:43:22"}
{"_id": "4SA6kmj3BiXr7sigW", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->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": "MzTWXfmKb2gDd6wQb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:12:52"}
{"_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": "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": "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": "6sMqTSuJDkuWB8m3h", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies (t not in Trash or u not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "mCiSmhKQibpE5uZuh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:52:07"}
{"_id": "YXmZQ2ScPDZFhJm4Q", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | s 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": "MQpi8yA3r2Swiyp88", "msg": "The name \"s\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:09:20"}
{"_id": "LupNAmRwyYSqgfSde", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | not no f.link )\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "acEWhmGoGZErrwEgX", "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-10-27 19:05:00"}
{"_id": "63EQBKKxMo2Sk7cWr", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "AaencYpyF7yjQHE69", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:17:07"}
{"_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": "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": "3jwoetpcMHGsmxJad", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File, t:Trash | t->f in link implies f in Trash \n}", "derivationOf": "x9RfHPMYvH7w4mdQj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:07:08"}
{"_id": "5NvvD5ygAvKZZAiYj", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 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": "bo5XPLLq5y4RgbRKz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:05:40"}
{"_id": "vLwQKRHstZh4PQZyo", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all 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": "NY9LDYP8QKrYRzK2j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:45:04"}
{"_id": "ArCWYi7P4Kk75Yxi7", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "EvespoCDT4c7yxuzH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:16:41"}
{"_id": "jTSbNPZxDApnQknsa", "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 | 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: 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": "JqudxTLzLLHocoiN9", "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-10-22 10:47:16"}
{"_id": "iKGpPu72BeEeTFZAh", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall f,l : File | (f.l in link and f in Trash) implies l in Trash\n}", "derivationOf": "DxX6BtCKZEwvi3EyN", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is l (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:34:53"}
{"_id": "YWn7gwBkJ7CWpuPwj", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies t in Protected and u in Protected)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "6sMqTSuJDkuWB8m3h", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:52:33"}
{"_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": "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": "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": "xGeg3BfXRzW9pMtns", "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\tx in File\n\tx 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": "ztsSNzmFP7u2KmTHw", "msg": "The name \"x\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:33:07"}
{"_id": "G9FZCQ62jvtGSuEAn", "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": "TGBwp9nrQm2qftXb7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:11:36"}
{"_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": "9thi7b3cP8tDtGnjP", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WKWRkJzwJngjCR9YQ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:07:13"}
{"_id": "aJjdEAeGn7XPBtZZn", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | (all l : f.link | l not in Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | (#f.link)=0\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | (#l.link)=0\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kgjL8d5t975Kfiu7D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:04:35"}
{"_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": "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": "Qhomhe2owubzHKCEx", "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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "rkW5FmXg6cj93miga", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-6 16:51:05"}
{"_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": "DrgFgvXEyb7PHb78w", "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  all f1,f2,f3 : File | f1 -> f2 in link and f1 -> f3 in link implies f2 = f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WXNkEeAmNumhCRCyH", "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-10-28 21:03:53"}
{"_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": "iWeHCi9Hd7kkeoKcE", "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": "HgPrxYbbobrFtYhRW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:22:43"}
{"_id": "Jtmta7C5xXRgdaJbp", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "ge6PNMp9KFWSW5tMo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:14:52"}
{"_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": "LBQgLRMHn24jgkdrP", "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/* 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 17:50:50"}
{"_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": "b2z9R83NAcwnhKjay", "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  all t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : file | one t : Trash : f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in 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": "wDnwnNuvsKLdk5xyQ", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:15:38"}
{"_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": "Aj9DHJaDcLN4nBzay", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:File | f in Protected and 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": "jK7GRBH4XaTQYKxLw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 09:43:08"}
{"_id": "aE7vNx9rgZGR2JAbn", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some f.l : link | f.l in f)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZFK4wvPcdWDSEAiC8", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:57:40"}
{"_id": "xtogur7ibugn5PFXd", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tsome 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": "kTBsmoJgJ6pqTKK9P", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:27:22"}
{"_id": "uaHaMuDJ2YFPZyAkZ", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | (all l : f.link | l 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": "hifXmEWH2TLzCAtR8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:51:16"}
{"_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": "f5MqQyfd9eiLHae7Y", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "eFaiWnzWE8NYCrewF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-19 14:55:55"}
{"_id": "tCL9YmNnSBGFtGAhF", "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\tall f : File | f in Trash\n}\n\n/* Some 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 in Trash) -> (f not in Protected)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nc49DTYd8asjKuqyE", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:22:24"}
{"_id": "tj3z4HGMCTjrrrmSs", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "fyfnniKeBJv7CJu6T", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:31"}
{"_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": "RPSzQDfMZRbAb4LBz", "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 {\nno 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": "cNZEBKwzwmCHkFFe7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 21:22:05"}
{"_id": "7vmDMKN7Sqez4BECt", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "ymn9M5R9s9xKFkes8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:00:20"}
{"_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": "JHH4vN5y7XyGdWgcS", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KKZgdLxXSi32FT43B", "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-10-28 21:05:28"}
{"_id": "chKDzRMBfuarMnMkj", "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  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ApdmBS5TR86Hgmsju", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:34:24"}
{"_id": "TGBwp9nrQm2qftXb7", "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": "a33FNwtLAvz4aSZhP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:10:04"}
{"_id": "4k3Fr3Eezj7zebznu", "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\n/* All files are deleted. */\npred inv2 {\n\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": "5oEG5ecjXoX64mTZ5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:04:55"}
{"_id": "7aPCJqXdmWQnRqFiB", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, 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": "nJkhhH6rmv2uGLqao", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:20:20"}
{"_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": "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": "DKbdtsn7Jp3zDrxFP", "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 | some t: Trash | not t\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": "This expression failed to be typechecked line 32, column 32, filename=/tmp/alloy_heredoc7162457218493219808.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-24 17:52:50"}
{"_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": "goRTk3KqTzkYZMWdm", "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\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:49:28"}
{"_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": "96TeWZJAz7ew6geGD", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 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": "HS6CdCpN3s9NQQFJL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:06:54"}
{"_id": "buQh8J6eihGhPEojY", "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 [t : File] {\n\tt in File\n\tall t: no t 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": "jeQmE4YHNrCvxjiZy", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:32:59"}
{"_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": "DwgbWPvEq3YKZZPdm", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BK9Pz5FBTf7akPeBf", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:21:41"}
{"_id": "CQdGQByJbDgCqC234", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in 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": "xtogur7ibugn5PFXd", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:31:00"}
{"_id": "LoepvSsFXnBuJ4nsh", "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\n  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "WnPqJ74PTMZ3yZAtM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:08:09"}
{"_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": "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": "4QkhmrGnpW3gRaEv6", "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 : 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 : link | true\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B3mqrWaziGNdBXKnW", "msg": "The name \"true\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 19:23:58"}
{"_id": "mCiSmhKQibpE5uZuh", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies (t not in Trash and u not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "q8eo9dG54hRoAF46f", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:51:54"}
{"_id": "fFmHqmTGfmiZYQebh", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "T2XNoyDn4wkQY5jbt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:44"}
{"_id": "9SjXPioGYdwRiQZep", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies (all li : l.links | li in Trash))\n}", "derivationOf": "znHYRj4KA6hQpADjp", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 18:25:51"}
{"_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": "YQjfDdZyWQTpWc6aq", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in linked and l 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": "xfMTkevht8t5kyHLd", "msg": "The name \"linked\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:13:52"}
{"_id": "cgJZZ57gySeYQ5KYM", "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 : Protected | f not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | (f -> f1 in link and f1 -> f2 in link) implies f1 == f2  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xkRZY8A7TZQfuQt6R", "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": "2020-10-27 20:26:00"}
{"_id": "BmWNTvPcEN4bFYiF2", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "H3FiAYkrQfhfrHeM9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:24"}
{"_id": "gArQps7q77SE6cTaS", "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  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  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "542n3aSaJhZ7dZBfr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:13:53"}
{"_id": "pdLwSfggrw47nqHhf", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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": "LrWJckt8zhBvKGZDF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:52:59"}
{"_id": "BoSZBHBtJPk3mhEYD", "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  all t : Trash | t not in File\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": "2021-1-12 03:45:37"}
{"_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": "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": "5FrKrmGhL9JAdvwgA", "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  all 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/* Some 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\t\n  \tall f1, f2 : File | f1.link = f2.link implies f1 = f2 and no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "Lykh6o6L9wkMJAePS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 15:07:29"}
{"_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": "rjWps3uCgbB7pEvdf", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k8jrrhMQW4BC5jGZS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:32:21"}
{"_id": "GRQgRhErGNrv4yLzz", "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/* Protected files 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\tall f : File | (one f' : File | f.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": "A6urov8yXSY8afonk", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:42:15"}
{"_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": "SLyFacABNuJ9ABYZ2", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "RHd9J5ABz4h5iaNix", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:39"}
{"_id": "d7eeQ4G6A3vYLsXMs", "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 File 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": "DJFZjv3g4tAmPi6nY", "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-10-28 19:03:08"}
{"_id": "ndFvB76HRR88Si3jW", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "j2Da5pcFD3KmFpRME", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-12-2 11:45:28"}
{"_id": "khXW4N3cznF6Xs2Kd", "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": "2020-9-7 14:54:16"}
{"_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": "fhoepn898KNZXygoG", "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[t:File] {t 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": "TuwYLRu2kEqTjArYZ", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:08:09"}
{"_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": "W5wuSCidh3ByGF8ux", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "H7EKKnZyJfXBbvYmk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:58:20"}
{"_id": "rqGjimHWupH5ZjHZi", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vCsFiEQyKx9zsG29x", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:43:54"}
{"_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": "5eJabJHuxocJiP3tS", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no 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": "sDLK7uBCbgZon3znd", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 20:56:54"}
{"_id": "T2XNoyDn4wkQY5jbt", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "tj3z4HGMCTjrrrmSs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:34"}
{"_id": "XwTjygSNnWjaDtSpx", "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  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : 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 and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "YWoBRMbCtuAbogF4z", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:04:48"}
{"_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": "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": "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": "a94F55kmpNkb7gkFP", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "pfAm3DrJSJYkkHfxz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:09:47"}
{"_id": "7WMoEZm28vLAGxjEh", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f : File  | f.link not in Trash \n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QjQjuQsFBhB7R7BKD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:07:58"}
{"_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": "mH6ppcnyPAqbo7yEu", "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 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 | all x not in Protected | 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": "EW22nSZtonaXsaWXM", "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-10-29 09:37:17"}
{"_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": "ssgzCAFqRZRBFoyv4", "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 { all t in File | no t 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": "hAkFtGg3BvShnA9ha", "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-10-25 17:32:35"}
{"_id": "92m3QQXtyNR9y7FBE", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2uzo9m2ZfZs5zSYAs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:26:01"}
{"_id": "vWimAYNTFWqmq63mb", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l1 : l.link | l in Trash => l1 in Trash\n}", "derivationOf": "5doPnTm9FpfdCvTfT", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:29:21"}
{"_id": "ntdGKZTYmHkrYvC8a", "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\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": "ksJfnHLwmeyp2AHvn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-2 03:50:03"}
{"_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": "aCuDWWrFExtw5sw8g", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(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": "Rc29bWBRdPxQwy63Q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:22:15"}
{"_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": "MP92LtuJFarJ5fSLg", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some 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": "48gnEEN5etwjTvQ4i", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:42:24"}
{"_id": "nzh9TDvn66DBdP7Dj", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link | t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "2gAdN9fCPskmkkqLg", "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-10-29 10:43:58"}
{"_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": "nwGYBmiS68wHTFqYb", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File.link | f not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "WYCNGsczhEAN8sXFj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:24:24"}
{"_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": "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": "fT82q9HXQYKsC4AfB", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "R2ADsmL7Cvx8H23ZR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:07:53"}
{"_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": "ccZ2AQNpkxEQq82iN", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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 \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:11:31"}
{"_id": "o4XsJfC2bEgCCEXxk", "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  all 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/* Some 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\tall f1,  f2: File | f1.link != f2.link implies f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "wxbpcBP7PvadLhh4v", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:54:19"}
{"_id": "yzwpyd3WtG7LGbvAC", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tf:File | link.f in iden implies f in Trash\n}", "derivationOf": "wTRz5jATntuYD4AGB", "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-6-14 22:35:53"}
{"_id": "Q2RgEcom32iEXtKKX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File | some y : File | y in Trash implies x -> y 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": "4L9Ccd7kozk3AEqNe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:16:51"}
{"_id": "TNDDiRugh9oXAjuQ4", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies f.link and f1.link not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "doQuttWHXPyebJ49B", "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-10-29 09:23:16"}
{"_id": "95cEKKRTFZQ3LDm4W", "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 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 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": "5zX9D7Hsr8ZnWTyzp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:37:18"}
{"_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": "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": "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": "oGEwSWoPRcvKyT9RQ", "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  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": "tckvMuKjeXaXM5ryY", "msg": "The name \"trash\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:02:51"}
{"_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": "o3Bv3rTYTjjRdeHdj", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\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,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "it6mwPeACehaocj67", "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": 566.3499755859375, "y": 265.40000406901044}, "File1": {"x": 566.3499755859375, "y": 132.70000203450522}}, "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": "File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-10-27 13:10:23"}
{"_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": "D97xAckzKTLiS738x", "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\n}\n\n/* All files are deleted. */\npred inv2 {\nall Trash : 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": "sDLK7uBCbgZon3znd", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:34:43"}
{"_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": "wDnwnNuvsKLdk5xyQ", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = none\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in 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": "PJCEiR6CaSDgvik9L", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:14:58"}
{"_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": "WmL6r3aQNjNoM2i5j", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies (f1 not in Trash and f2 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": "wHtFP2znZCkWFfmka", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:25:00"}
{"_id": "NeWEhnNhvXX66JeX2", "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  \n  all t : Trash | t not in File\n\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 | p  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  all disj f1,f2 : File |  (f1->f2) & 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": "zDZJWEXLmcZEtiZKa", "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": "2021-1-12 04:34:10"}
{"_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": "PzLqwbwRPpDSQ2BDt", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some 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}", "derivationOf": "S6sjsD4fefZRkANZh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 10:50:16"}
{"_id": "nMtosmSxbAytfF6p8", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:37:26"}
{"_id": "C5JSskd6xhbcX7GZu", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "CdStbvTfZ4FWMeD3p", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:18"}
{"_id": "SDB68dbP2BRGnyLT3", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : 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": "x9uBPJdARvY3XYw7r", "msg": "This expression failed to be typechecked line 55, column 10, filename=/tmp/alloy_heredoc9080252612274072649.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:21: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": "CCeP63Gk8xXuEMz2L", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\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\tset f:File | link.f in iden implies f in Trash\n}", "derivationOf": "i8aNEtKPJNBpC8NXt", "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-6-14 22:35:19"}
{"_id": "NJBNTGT3p26boBord", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l 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": "yEFhSBNM6jbpPhQ9g", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:10:13"}
{"_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": "DwAjnTxk9DARaXc2Y", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | all l : f.link | #l<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NtuMF6T7365DzYMig", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:45:00"}
{"_id": "JCyubyfvhZRAY8Y9r", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (lkd in Trash and f->lkd in link) implies f in Trash\n}", "derivationOf": "vWLAS2npLFaTPpi7u", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:09:08"}
{"_id": "8xC9NLmiQE5GYCT3n", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "McosBAm6697hQcnKz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:02:54"}
{"_id": "kWPtLhnWx8YPdcgEy", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "8edpbhTJb82RpJei7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:50"}
{"_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": "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": "kCtsKAk62NmtypNFB", "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  (all t,u,v,x : File | (t->u in link and v->x in link) implies u->v not in link)\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b3krBrMuujKdRLxCD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:46:59"}
{"_id": "GsKFAysqrygihmJQj", "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  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  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  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "ZfXzK7Jcunnaox3cf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:14:26"}
{"_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": "RwYg6PBuv6qcyhbjC", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | l in Trash\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A98biY94RKZN35zSa", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:15:13"}
{"_id": "dxfwJ5YRv3MeWWm6H", "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": "2BFNgmyHZ7F3KuC4r", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:46:37"}
{"_id": "9ypxfvrds3JZ3F9sT", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall bruh : Protected | bruh 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": "cWE8nLtdeQdZ7bbTb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:11"}
{"_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": "7vdj97XNKavux2Q46", "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": "d7eeQ4G6A3vYLsXMs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:39:40"}
{"_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": "Y8BLYME22MmQG5RNB", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies ( l.link in Trash ))", "derivationOf": "vEyNANKyhCQRLz86a", "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-10-27 18:23:48"}
{"_id": "Da5XfnzB4ENMoqDC7", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | l in f)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NiqDqBEXLjYttzZAo", "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-10-27 16:58:42"}
{"_id": "QZQBFah9mfXj2878C", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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": "GSqbGgzcpmfvbjwHe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:33:15"}
{"_id": "yPhuCWbMxGEa2wzpg", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | f.~links 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": "R7n5GAMRZhmHEn2pr", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:27:56"}
{"_id": "9ukZ5ycb3xHTY9emv", "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 f1,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": "GmCifTgzS3gnGKSM8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:45:25"}
{"_id": "8nGSBdhCh2Dc5CeBG", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mdtyZZbniXYGHZaAD", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:24:54"}
{"_id": "eg4wXFa2zFwpTmXwf", "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": "9R3qwuTL9eYdEKb4X", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:37:15"}
{"_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": "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": "xuwF5tDRfexHTQHCL", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3uchxv2T5Cxytg33u", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:14:34"}
{"_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": "JfxzZb4u3yrzwixdj", "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/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected and 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": "snS6DH5edMKrKCC23", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 17:53:00"}
{"_id": "bCcmLdBa8iAwrgLDm", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 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": "EuD57iHsechWbt2HB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:13:57"}
{"_id": "2mFizQySzjCXwzGNF", "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 Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\nrun inv5 for 2 but 1 Trash\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9thi7b3cP8tDtGnjP", "msg": "Cannot specify a scope for a subset signature \"this/Trash\"", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-7 14:07:41"}
{"_id": "ttqmXw5y5MN4XJHnC", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "96TeWZJAz7ew6geGD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:08:38"}
{"_id": "yxwnHqm7CXDjz87g2", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File: #f.link <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B9uhzDfErcaQ8NMXQ", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:18:38"}
{"_id": "raCc4ekLeHA4tLqdr", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash and f not Protected implies f in Trash\n}", "derivationOf": "Y7Rwmfk6QMTSf9eCs", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:48:15"}
{"_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": "wxPWH5Q7zXfZgY8X3", "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 t in Trash. t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dsBH4iGbocRhieji6", "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-2-17 14:04:15"}
{"_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": "EvespoCDT4c7yxuzH", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "JfF4XYzoGN2DdPuPi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:08:42"}
{"_id": "Tc7EbXzCYjXPqbGKs", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uSQjxyzHLWDRPprT6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:50:49"}
{"_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": "8tFp3LccL8At9z2b2", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rkS8W9z9t9M6YwQ2P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:50:18"}
{"_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": "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": "Sm3BxFaKfETZXjWGY", "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\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": "4swrGmswetR7dyatB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:09"}
{"_id": "FvBHSRMh5JzDDPTLp", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | not no f.link )\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "SnDLQtHM2vS8eH3AK", "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-10-27 19:05:26"}
{"_id": "GsM8T2raAHRNGWpiy", "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 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: 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": "N3FDEA3zTaEadt7su", "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-10-29 09:02:57"}
{"_id": "mChYi58vq3ZtgHntY", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l1 : l.link | l in Trash <=> l1 in Trash\n}", "derivationOf": "vWimAYNTFWqmq63mb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:29:53"}
{"_id": "KNTLrNGcYkdgTXxR5", "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  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JJr7KBJzabEdZmxiR", "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-10-22 10:32:11"}
{"_id": "pM4AvQFKScqs32Dn4", "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 { all f: File | f not 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": "9i6jwi9NSMDLEPWJZ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:54:38"}
{"_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": "mTettH6CytEkYuTYt", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash implies u in Trash \n  \n}", "derivationOf": "e45YojnmrQwnKufj5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-31 16:31:49"}
{"_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": "7WZMqHN4K8Et4eYoc", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\tno Trash & link\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pEYAmBntetY8CNZXe", "msg": "& 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": "2021-1-12 04:53:11"}
{"_id": "7x9Z7XtxZB4imtdjv", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "nzh9TDvn66DBdP7Dj", "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-10-29 10:44:10"}
{"_id": "rE5GmxzayG68NqoFc", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:35:38"}
{"_id": "xKS5poMzrphztN9Fd", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall f,l : File | (l in f.link and f in Trash) implies l in Trash\n}", "derivationOf": "iKGpPu72BeEeTFZAh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:35:00"}
{"_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": "5xhgbMDCGFBEMFhLG", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-12-2 11:47:08"}
{"_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": "xQ2fc4XnpMbBJjeQq", "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-10-28 18:58:35"}
{"_id": "GSqbGgzcpmfvbjwHe", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all 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": "njrwP4FWrdMa3ZYiy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:32:50"}
{"_id": "iA4GqsmLZxTWbrarq", "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\ufffcno 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": "NwLu3yzinbZb7SCaE", "msg": "Syntax error at the ? character. HEX: \\u3f)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:46:48"}
{"_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": "269yb4T2w7AMax9NQ", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:48:42"}
{"_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": "rGaq6QNPdd4mPueJm", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "fFmHqmTGfmiZYQebh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:09:29"}
{"_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": "75QJAA2pwoszBgihh", "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  no Trash ;\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GzPY5LjBBWpFieb8j", "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-10-22 12:38:06"}
{"_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": "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": "28YaMS5akvu5gZPyp", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "wHSpvDof8gioAYSJu", "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-10-29 10:06:38"}
{"_id": "LwHwp6SKfBqkafkcT", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BzThe3FmzamAepbBq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:26:39"}
{"_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": "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": "Hb4CHa3en52yhc9vz", "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": "2020-10-22 10:17:52"}
{"_id": "YWoBRMbCtuAbogF4z", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : 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 and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "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": "2020-10-22 10:49:23"}
{"_id": "GDNqEQ4C2kcoFSxgr", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "4nLZN2cBfBDcmrTAA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:38:17"}
{"_id": "NY9LDYP8QKrYRzK2j", "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 : File | all y : File | 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\tall x : File | all 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": "LuNWCoKnrobkBwjcs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:44:37"}
{"_id": "kn6qAepyCMzaqRv7G", "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\tno link.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wi3uMaTNy8HXjYgaS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-6-15 19:25:13"}
{"_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": "x4uZbXXpy5fK58Pvy", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6QyaTQnBDsqJ7YJsC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:59:02"}
{"_id": "keGFLDfZgkJBNsndo", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 :File |\n  f->a1 in link and f->a2 in link implies a1=a2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iJMvmFRtq7q93bpPm", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:10:19"}
{"_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": "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": "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": "yt9ebKPeNZHZsWCY3", "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 t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tx in File\n  \tx 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": "Q7ozZjaHTbYghdjqR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:31:02"}
{"_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": "LxMyXM9WuyLJEEvqW", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x in link implies u=x)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies t->u 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": "bFRbSv4eHCtefbrAa", "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-10-27 19:24:48"}
{"_id": "2uzo9m2ZfZs5zSYAs", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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": "g3YusBrmoK7FTwwcr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:25:29"}
{"_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": "gqGEm74spjNM7LQye", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "YLjCsMwtK4enCFZNR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:26"}
{"_id": "HnmMgBGFxZ3fbrQiL", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2 : File | f1->f2 in File and f1->f2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oC3m7BKAGPbTiNPLv", "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-10-28 21:02:45"}
{"_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": "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": "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": "up2zAvtaveewc6XFy", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies (f1 not in Trash and f2 not in Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "nZhBDd3ZZkRpjBaJ6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:11:58"}
{"_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": "CTEQ9kB7XykxrdCdF", "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  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "T4rv2m56PmnhsRkMh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:15:31"}
{"_id": "wPwnzXivcN46JeMhJ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x -> y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File, y, t : File | x -> y in link implies y -> t not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x : File, y : File | x -> y in link and x in Trash implies y in Trash\n}", "derivationOf": "v2vCgPjJLwaGbCQWX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:21:16"}
{"_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": "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": "u3238H3CBroSiag98", "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  no Trash\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  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  all 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": "EAcBsuarnxgFs67J4", "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-10-27 16:21:26"}
{"_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": "uLsqmAohLKwrM5pB4", "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 {\nno 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 : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | f not in Protected implies f not 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": "C6zMRETeq8ukFz9Jg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 21:23:29"}
{"_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": "2wxjf5Mhxwgh7iQAf", "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\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": "BW2SAZjcHnfaG3Loo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:35:40"}
{"_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": "A4GsTbptoFBbJjssP", "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": "2020-10-21 21:16:43"}
{"_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": "AhE33mxD2mLLgbFyQ", "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: Files | 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", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-24 14:01:03"}
{"_id": "2HxAy7WzNpeXBHE6z", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K85tPQXkfRSE26tZQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:32:26"}
{"_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": "mE3fsXKRJ5qpfDrFu", "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 { all f in File | all t in Trash | f->t 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": "dgAJrFWuL5mp8ghBb", "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-10-22 10:44:22"}
{"_id": "hnHybFHEy3kDmHKfi", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "rqifkeonbT2bsB2v6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:11:38"}
{"_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": "LaB6FJr7Nrn7bGGZX", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BwbHTjquTersgTiET", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:02:54"}
{"_id": "rYZh5YiuZEGmJGowA", "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  all 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/* Some 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\tall f1,  f2: File | f1->f2 in link implies no f1.link & f2.link and no f1->f1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "bKWpEh3SFWSMeNueX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:30:51"}
{"_id": "pYPBMfmRqqKwqZFmN", "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 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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File , y : File , 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 : Trash | x->y x in link\n}", "derivationOf": "RN3GmSCiKZNuntESi", "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-10-29 09:51:29"}
{"_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": "cKZKEGY7uuTreyNuS", "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 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 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, f3 : File | f1->f2 in link and f1->f3 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": "qK8kB9mfAiqmCYZzA", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:40:03"}
{"_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": "GzPY5LjBBWpFieb8j", "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  no Trash :\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ibWf2RwjFioCPReoB", "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-10-22 12:38:00"}
{"_id": "TGM3rn3rJLcwRYmqv", "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 { all t1 in File | all t2 in Trash | t1->t2 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": "mE3fsXKRJ5qpfDrFu", "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-10-22 10:44:51"}
{"_id": "Xrg833H2oJAdJTGfw", "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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "CjSqwFL64y2PGwxWB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:34:27"}
{"_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": "MQMnqjcyhMeBXfwcb", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "a94F55kmpNkb7gkFP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:09:53"}
{"_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": "MTp7hqLtcR8mJbY3E", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | all l : f.link | (#l)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DwAjnTxk9DARaXc2Y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:45:13"}
{"_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": "B3ACQ7LDk3PMGPedx", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T7X2Di7o4jH9YvBeF", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:11:01"}
{"_id": "FquHdBEx7pxpDfPiR", "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 not in File \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": "Q4TtCiQdk48k2G52P", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:24:12"}
{"_id": "hwfqCEPSz8zxjqDxY", "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": "F6YsNGwMJ3s7Hyus3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:00:11"}
{"_id": "uE3zTwSfv7skZsR5b", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Prepared && 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": "XXKJWvurgigAakgM8", "msg": "The name \"Prepared\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:23:15"}
{"_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": "pRDMwG5xFjSNHrTuc", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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": "xuobpsCpwvai4tFLd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:32:01"}
{"_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": "9uTSc7gWzWe8TavyQ", "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\tall f : File | f in Trash\n}\n\n/* Some 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 in Trash -> f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FcKW95v3fkBpRxAon", "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-10-29 09:21:21"}
{"_id": "NjE2vqBSPr2ceCuXm", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in 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": "gY7E8pPNxx6XAW2Au", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:26:24"}
{"_id": "fC4RLYh576hgWa2Kh", "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\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  some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f not in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9GjRcjwHBzhWQ4iCr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:42:10"}
{"_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": "m9PugeGiBF9aC4yZq", "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\n  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : Protected | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "WSPPNEgfSAxcQjHnp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:06:44"}
{"_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": "HJDf9Q29NRt99QFmz", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  t not in Trash\n  Trash' = Trash + t\n  File' = File\n  Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iure5dKtFCbh9pP46", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:48"}
{"_id": "h2iMnQ9xXinC3adcr", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link | l in Trash => (all l1 : l.link | l1 in Trash)\n}", "derivationOf": "WHnaHYvqeqZWRCqW8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:31:10"}
{"_id": "YBCNmTfJ35hd92DqJ", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t -> u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  (f->u in link) implies (f->u in Trash implies u in Trash) \n  \n}", "derivationOf": "kn2yAR9oE467xXyRw", "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-10-29 10:50:33"}
{"_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": "Gnb8ZE8mjLsJwtZTR", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File l, u : File | f -> l in link and f -> u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "YEFet2BM4suAgaP5M", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:41:36"}
{"_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": "H7EKKnZyJfXBbvYmk", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F6An59XWyn4hz9tXE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:57:43"}
{"_id": "ADffsY8bFmcTThfR9", "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\tlink in iden\n}\n\n/* A link does not link to another 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-6-15 19:24:46"}
{"_id": "EYb36o9PLzktzKTit", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 not in link implies f2 in Trash\n}", "derivationOf": "BLwCgsw9gGpEaRT9q", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:10:15"}
{"_id": "bL6yfZDnEncWkcxc9", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-28 16:35:22"}
{"_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": "5oMoiQZrowFjkEtxh", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "vvFZHeuBCFMzQC6rp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:22"}
{"_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": "7gFs6fd45da9wWEMW", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link and l 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": "YQjfDdZyWQTpWc6aq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 18:13:58"}
{"_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": "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": "feneyDqBoCA5v8NmY", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* 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": "kXvE5rpkJzxuNqy7f", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:39:37"}
{"_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": "iwWcuTu8ro9iqsf8F", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,lkd : File| f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "yX7N6uqjpprFtvsBc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:02:10"}
{"_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": "8dDCXJJtMRknzCkQe", "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  all t : Trash | t not in File\n\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 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": "cWPAiiuEEH6S8Jv3m", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:16:15"}
{"_id": "jGytKERzgL3ZWd8da", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in Trash implies f2 in Trash\n}", "derivationOf": "kQsrphJcyDRKodXrd", "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-10-29 10:04:08"}
{"_id": "2RRrymmZwbaRckzTr", "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 link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uECGejudBz2T8hYov", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:43:03"}
{"_id": "en68YFz7SCEAW6gMn", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \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": "96sKuoEDPqst5iqza", "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-10-22 10:34:00"}
{"_id": "b3krBrMuujKdRLxCD", "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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  (all t,u,v,x : File | (t->u in link and v->x in link implies u->v 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", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:46:50"}
{"_id": "eNzaZJbEWoSNeWf74", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Files | 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": "feneyDqBoCA5v8NmY", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 10:40:56"}
{"_id": "929mfF5F5wKgMaFG2", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HXxMT7djY3BhWTEaK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:50:52"}
{"_id": "v8YWwQuafbTu3jhm3", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "bHhM2SjDt8zRF9HxT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:57:17"}
{"_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": "rhxmJ76nrXXMKPWDy", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XXPZAkGjBWfX35WaX", "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-10-22 10:29:07"}
{"_id": "4oBWLyS4B6LAv9tK7", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* 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": "cGaKaSpbddcFqP8iW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:41:55"}
{"_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": "ShSY8veSEWrJPW4aW", "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-10-22 10:28:50"}
{"_id": "j8FzPf2QD97NJsLDd", "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 | 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: 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": "ZxQnjpNYtoWnj3Fa4", "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-10-29 09:05:02"}
{"_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": "wG3Pb2Mzp5aSxeP9C", "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 t : Trash | no t \n\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 : File.Protected | p 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": "YYp8mJeHdYPogXJyv", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-4 20:53:34"}
{"_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": "GFJPxBccYkMmmPFgF", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.link | f1 in Trash implies (no f1 in File)\n}", "derivationOf": "Km72DdbQmwNZCagTs", "msg": "The name \"f1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:36:23"}
{"_id": "SQBvSuRgiitbXHg7m", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File: #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yxwnHqm7CXDjz87g2", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:18:53"}
{"_id": "v2vCgPjJLwaGbCQWX", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x -> y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File, y, t : File | x -> y in link implies y -> t not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x : File, y : File | x -> y in link and y in Trash implies x in Trash\n}", "derivationOf": "5EjHcYTqxrnwTN3LM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:20:38"}
{"_id": "nYgAQCCcQnXLsfuTS", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "xpCeQ6dtm8KcYFnET", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:22:37"}
{"_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": "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": "yZP2A2egKuRbwJFMW", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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": "F8qW9jpy8ZySECdLc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:24:14"}
{"_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": "A6HadWQkp8ecav94u", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n\tall f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "uDqxqj2LQhN6oQhKh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:51:56"}
{"_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": "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": "3JTLGaNrkWxRv6PDS", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l1 : l.link | l in Trash => l1 in Trash \n}", "derivationOf": "53iPeDoCWu8QyNjsg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:27:26"}
{"_id": "uSQjxyzHLWDRPprT6", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some 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": "pK69gZjL8gh2AMyrB", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:50:38"}
{"_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": "cy82R4xpYeTKLs8q8", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n\tall l : File.link | l not in Trash  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GnZ6rEppeaHriBCaB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 05:16:36"}
{"_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": "sgFjkKbdDdqt9zAN4", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f1 : File | f != f1 and f->f1 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": "YgrdW4z9jiy9rpKAh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:59:59"}
{"_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": "QztRfFx5QJvDWZrS7", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:42"}
{"_id": "hzmWbyNZq5ESBS5Gn", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  true\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zaN4PG65ZmLjCMH8x", "msg": "The name \"true\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:23:39"}
{"_id": "XS9F8MkR8AJe2qG6u", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash*/\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "AcH8j93DhLqBgx7Mg", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:07:06"}
{"_id": "J9LLCCaWGezhEjo4G", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "oAx3vthxSoZNE9NYx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:27:03"}
{"_id": "2HQHJcbv8RaMghtgh", "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  no Trash ;\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "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": "2020-10-23 10:43:04"}
{"_id": "brFprg9QQBfSMoxXN", "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 [f : File]{\n  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": "m2YEfFxtJtkoiJaS3", "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/inv1.\nThe parameters are\n  f: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:26:43"}
{"_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": "kMRtpK4bdfzcZXDGm", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - 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": "MdEfHnqW8DDT4HLAm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:49:31"}
{"_id": "KfK9pi9XDPPWrBr9p", "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/* Protected files 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": "SgC9FY3wLFCfogrFZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:29:17"}
{"_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": "6byfgJj2riSoqWarS", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f -> l\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": "7CJrFFSSJgcYB9RFH", "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": "2020-10-22 10:43:05"}
{"_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": "hqoXoMmRj3a7Gu2Jh", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f2 in Trash implies f1->f2 not in link\n}", "derivationOf": "CSczvvtWp2bGXa2Bh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 20:51:05"}
{"_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": "JCiuYdqhDzGjFz6Kz", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd 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": "MuP87FDhpRh8bYFvT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:01:13"}
{"_id": "QMadTMQfyukZyvTjS", "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}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some t : Trash, p : Protected, f : File | t->f in link implies p->f not in link \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZRDMGzz4zyTtjf8cj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:46:44"}
{"_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": "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": "Ks8tb92bDqEcQz8kx", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies (t not in Trash and u not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "48Z4MAknAYbQ5Pwfo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:54:21"}
{"_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": "cNZEBKwzwmCHkFFe7", "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 {\nno 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": "xKE49XPQotvJFFg8W", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 21:21:53"}
{"_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": "fTTqiMccFSkkWKZXM", "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 \t\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\tall f : File | \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File, t,u : File  |f->t in file and f->u in file implies t=u\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7aoC4H5ZcYezkpe9E", "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-10-22 10:32:14"}
{"_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": "SewsLSgSdoaZ7pGRE", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "NYN4y9h6v5tv8cnoQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:33"}
{"_id": "cYdnMduYuN58D6YyK", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File | some 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": "Q2RgEcom32iEXtKKX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:17:13"}
{"_id": "MuP87FDhpRh8bYFvT", "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, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bnhwyELTX9iZ3gDnW", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:01:04"}
{"_id": "EFLbYbz2ErBrFoKzT", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x in link implies u=x)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies (t not in Trash and u 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": "hrFizJNaHYD4wtBQS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:25:30"}
{"_id": "bYycfFsL7AZNu4dq7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XAuTYfHTx6q4PjT3Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:19"}
{"_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": "D5Y9at2oWivGADmzh", "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 : 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": "zYhL6B4HkvJiRWoxd", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:31:35"}
{"_id": "eSojkLGjNiYCLWXLc", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "gHMM34XXt5WFp7ars", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:30"}
{"_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": "RN3GmSCiKZNuntESi", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File , y : File , 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": "pM5B8aQx6jktTzgvp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:49:40"}
{"_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": "QKTDu62pTDhhXuxGL", "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\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/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i8GCsLtHdYnm9iJin", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:29:07"}
{"_id": "4ZpDDbewEdH6rGLpY", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd 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": "373bmYq565Qm42hqY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:59:16"}
{"_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": "XSKnprgAXHxRbH4CC", "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": "imuXzEGkAGQkPR5ve", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:06"}
{"_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": "KKDYcKbmgsJHLfdia", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "G9NFauXNShDa6PZdS", "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-10-29 10:46:33"}
{"_id": "STd2G3LCLCffkDfLp", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some l : link | f->l 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": "hdEyb9D6J3XAv9WjL", "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": "2020-10-22 10:34:42"}
{"_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": "x9qNfHvuRitEFXmfW", "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 [ t : Trash ] { no t\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": "wPXrwdZ8nRm2xikhX", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:18:52"}
{"_id": "7aoC4H5ZcYezkpe9E", "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 \t\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\tall f : File | \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File, t,u :  |w->t in working_on and w->u in working_on implies t=u\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FquHdBEx7pxpDfPiR", "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-10-22 10:31:28"}
{"_id": "qeYPhYLzJKAEvjS2q", "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 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 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, f3 : Files | f1->f2 in link implies f3->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JBtfS2CmuJfuDgtzJ", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:38:41"}
{"_id": "e9xiwpbkGNwQ36NPT", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some f: File | f not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { all f: File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yPfMbYbA9mxmQLXNK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:44:12"}
{"_id": "mM5YYRSgL9Naz9gyS", "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 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 : not in Protected | 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": "yHo4rRe5CoP8DqB6H", "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-10-29 09:35:32"}
{"_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": "7Svn53HF2kSWQCqAW", "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 { all f,g : File | f->g in link and g->f in link implies f=g\n  \n}\n  \n/* There is no deleted link. */\npred inv7 { \n\n}\n\n/* There are no links. */\npred inv8 { \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Cr7buYJuuZpEsEZvZ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:30:56"}
{"_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": "nfW7hgJtRFR3Ez7dW", "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 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": "iYyywfAicCk2wXpPi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:37:20"}
{"_id": "7eFBBeirM6Pw2Kee8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | some 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": "hkYm65jSF426sPbuq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:08:56"}
{"_id": "H79srhtHWNyfPQKym", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh 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": "fsf9ZKnrMFTWjgGmA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:15:36"}
{"_id": "FM9tPXGuRFTJoJFgf", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | 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, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk 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": "q4vQm4drKz4RJDhM2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:51:03"}
{"_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": "YDvXwqiwov89hkpgp", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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": "3c4j3N5mZa6orKy5k", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 02:31:39"}
{"_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": "NmTfASD8D3SWSeNC4", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  univ\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hzmWbyNZq5ESBS5Gn", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:23:50"}
{"_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": "pQMr9RkTnDJNCneyr", "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\tnot 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": "tJy6dBzTamiXReFQB", "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-10-29 09:07:50"}
{"_id": "KaNkQuXC7etYvxLWw", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "n2PkcmPykGB2i9CzY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:20:55"}
{"_id": "A88HEmZP6emXi8zoN", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File, l,t : link | f->l->g in link and f->t->g in link implies l=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": "vfyqdhSzFBE4eSFya", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:11:33"}
{"_id": "G6KNaWgD29ra4XWev", "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  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n6nqXmsbJBiYSHbvz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:21:15"}
{"_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": "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": "kQsrphJcyDRKodXrd", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | (f1 -> f2 in link) implies f2 in Trash\n}", "derivationOf": "e53yhnQHw9osw2nMD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:03:52"}
{"_id": "scqvMcMhAxre79dBA", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:File | f not in Trash and 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": "t6QSHgkysmicK4rai", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 09:41:39"}
{"_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": "JNLm5DEhXqShjP8aW", "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 [t : File] {\n\tt in File\n    all t: no t in Trash \n}\n\n/* All files are deleted. */\npred inv2 [t : File] { all t 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": "buQh8J6eihGhPEojY", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:34:00"}
{"_id": "RjAKzxjrCJ7vC375S", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "797Hcx9635ANjBrPW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-17 22:32:14"}
{"_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": "v4iNAQWywHG8op6BD", "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[t: File] { t 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": "a2CHhbfagAnT5NvNQ", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:05:49"}
{"_id": "vHEjZEzwthjwLXBPP", "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 : File | all y : File | 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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "stKxrxo6y38kjXQ7K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:43:47"}
{"_id": "NMMTu7W97aXg6hwWP", "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/* 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": "TpxSdCjtXp5TA5CKD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:45"}
{"_id": "T5dF8xkSRa8eoQ5bf", "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  some 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": "BmXPP98MoCKpPjs4i", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:27:17"}
{"_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": "XAuTYfHTx6q4PjT3Y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies x = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gXWyZXrEHb8jA7RAh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:13:04"}
{"_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": "cWE8nLtdeQdZ7bbTb", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall bruh : Protected | bruh not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall bruh : File | bruh not in Protected -> bruh 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": "FSiCR22JaAu2fPKSy", "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-10-28 19:20:58"}
{"_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": "3YYRiugHKLPtuyXsk", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o9bBTqGiwRoGgyQe3", "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-10-27 19:36:53"}
{"_id": "tNaYmmfaAiysa4QKH", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link implies f1 in Trash\n}", "derivationOf": "cH7Yy8JQjidHo7Dit", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:01:17"}
{"_id": "cGXdKa2A3uR5yMJRJ", "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  File x\n\tx in File\n\tx 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": "xGeg3BfXRzW9pMtns", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:33:18"}
{"_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": "WnPqJ74PTMZ3yZAtM", "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\n  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "m9PugeGiBF9aC4yZq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:07:59"}
{"_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": "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": "oxcyYrmwrtM6iA93r", "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 \t\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\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File, t,u : link  |f->t in link and f->u in link implies t=u\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FDikEgRMmvGJkj3WF", "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": "2020-10-22 10:34:01"}
{"_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": "8Gpeh7ocFogQDX5Rq", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall bruh : Protected | bruh not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall bruh : File | ((bruh not in Protected) -> (bruh 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": "9ypxfvrds3JZ3F9sT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 19:21:30"}
{"_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": "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": "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": "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": "oALTvAgMofLf8FpHw", "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  no Trash:\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "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": "2020-10-22 15:36:28"}
{"_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": "qyF5n6MYCn7GkNPjH", "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\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall 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": "prsshCBJHi26u3MR4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:26:42"}
{"_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": "n6nqXmsbJBiYSHbvz", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\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": "479gW2dhxkdt7x5Lk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:20:56"}
{"_id": "7bh73og6axsERsBXr", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | ~links.f 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": "yPhuCWbMxGEa2wzpg", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:28:05"}
{"_id": "iQiLFB86RkmL5ahZZ", "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  all t : Trash | t not in File\n\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 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  all 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": "qnBeNk5rypeJhRYjs", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 04:21:07"}
{"_id": "aPKm7kokBefuWSmg9", "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": "2020-10-22 10:18:44"}
{"_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": "jJqJhMETzE6bGtwdZ", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies 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}", "derivationOf": "pdLwSfggrw47nqHhf", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:53:33"}
{"_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": "vnnYhR5cRnA5FR4hv", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link | f in Trash => l in Trash\n}", "derivationOf": "JSdsZYnYP5JwfggR9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:49:54"}
{"_id": "gBZu76pcZJ7fLxcLw", "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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bwwbfddv3J9RcCtiL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:29:48"}
{"_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": "cNpz5rjviiRvLXxDo", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:04:27"}
{"_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": "N2Myrrw7ca8dcJgzE", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "BmWNTvPcEN4bFYiF2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:27"}
{"_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": "tfXoAfu932ceurmza", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some f: File | f not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { all 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": "cYH4ytu2bPpK9kjnA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:42:41"}
{"_id": "xWRCDX5z64MwkPi9a", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n  all f : File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  all f:File|(all l :f.link | no l.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EwWKa8MB2gLiYMLZd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:30:47"}
{"_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": "aZnD5ifKLYq7CRzEi", "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\n/* All files are deleted. */\npred inv2 {\n File in Trash \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SRQ7J99jQRtPhXXaw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 15:55:50"}
{"_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": "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": "Te7doy6mbHeAZx5at", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some a:File | some b:File | f->a in link and f->b in link implies a==b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "btgmwXiWnzQW3YcqY", "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": "2020-10-28 10:57:49"}
{"_id": "qnBeNk5rypeJhRYjs", "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  all t : Trash | t not in File\n\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 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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JvLWoDEfNFynKjo9C", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:20:40"}
{"_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": "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": "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": "xGfByrePhGnDeuTue", "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  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : Protected | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "Yj8vkRK4fcQixNT6f", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:05:50"}
{"_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": "HPFW9ZHzHZ8f2mnuE", "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 { all f,g : File | f->g in link and g->f in link implies f=g\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-11-3 10:15:18"}
{"_id": "2fF9up7juJpHKEynN", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \t\n  \tall l1:File.link | some l2:File.link | l1 not in l2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "LGCaK4BYqTvzugMJE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:27:39"}
{"_id": "7hxsEGn8QnxD3F4oM", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "uxdiyA5t8B3x6YJ5a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:45"}
{"_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": "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": "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": "YNY3cuSzpLFzsKQdj", "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 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 and f1->f3 implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "68GJ44nzfc2dLE7rm", "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-10-29 09:28:45"}
{"_id": "gxjj6XHy78d43vjg7", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "3LunemBtQnPHRk2zD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:12:50"}
{"_id": "2j2c5nTZNjg8et5vy", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies l\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": "EoCYX9E6LHTWxEKE3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:45:29"}
{"_id": "vvFZHeuBCFMzQC6rp", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "2sENiwfS2C6xntLuL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:18"}
{"_id": "p6wTwQr8a9WarFuhB", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | l in 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": "SdrtNiX2SNdZuzdss", "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-10-27 16:49:33"}
{"_id": "GocgnhqyQMcKGJMPG", "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 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 and f2->f1 in link) implies (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}", "derivationOf": "GoJR7Ed2QjSQNKgtN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:32:36"}
{"_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": "BP3apM4YYzd5yLqQf", "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 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 or f2->f1 in link) implies (f1 not in Trash or 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": "6m9kKDgwQuLJALMAE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:33:48"}
{"_id": "2aKoEa3N3kHWHN3KZ", "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/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies some l\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": "ZGBMKF2xqoKmwskh8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:44:24"}
{"_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": "MouRx5vddi5ZefNYg", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "Q7QRGneTxugEZuGuM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:29"}
{"_id": "stKxrxo6y38kjXQ7K", "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 : File | all 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": "c4H2WsCjyuGWQrvWc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:43:03"}
{"_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": "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": "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": "muHjFYEBura9MAx2C", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XZ2y6cjdu95pkW4Fw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:27:02"}
{"_id": "dicd5HashZXgCweL6", "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 { no t1->...->tn 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": "2HkAeWKE2aRzHt9wd", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:07:05"}
{"_id": "qnay5Zkoe4WiCftAR", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f : File | (all t : File | f->t in link) implies t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "WavF4iW7koLPczNDX", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:45:30"}
{"_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": "pEYAmBntetY8CNZXe", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all  l : link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jj8ohPwX2zELKebRn", "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": "2021-1-12 04:52:33"}
{"_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": "542n3aSaJhZ7dZBfr", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all 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  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "CebwDmnWuSztx9Tkv", "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-10-28 21:13:45"}
{"_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": "WDx2wyaGpqeHzHbix", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all f : File | (f = l) and (l in Trash))\n}", "derivationOf": "W7RxXNguyaBcPYyok", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:12:18"}
{"_id": "hdEyb9D6J3XAv9WjL", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some l : link | f->l 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": "nJLbd4CspP6srdKf8", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:34:22"}
{"_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": "iGepTyHCSNheo57qE", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File-Protected) & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3g7zXfaNThu6s9acc", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:14:46"}
{"_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": "5Qd7XNBSmy6FZv6j3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cYdnMduYuN58D6YyK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:13"}
{"_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": "NDuHeiCiqfaohWqqo", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "5Sj2yMJxa67tHg4iC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:11:15"}
{"_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": "wazejnXeR4RCvt6bo", "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 file : File | 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:12:58"}
{"_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": "QqnPoooQkqyBfEPsg", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DwgbWPvEq3YKZZPdm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:22:17"}
{"_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": "nuFHyQ2LM8y3rdweE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "gaMh43GqpQ9rDT7pq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:41"}
{"_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": "PYXSdrCPMfiv6eddq", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:Trash | 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": "nuNQfzK5SEQNg8hqu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 09:43:57"}
{"_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": "bB2hm3WRPNEa85P4H", "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 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": "FcZjScvzWZkGGgaqZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:25:28"}
{"_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": "Tf6ov6zd3FG9p67ti", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "6JD2XmYyvHroR2F3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:14"}
{"_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": "y4dBHWZ7rGAtpn4Xd", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t in Trash and u in Trash implies t->u not in link)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u not in link)\n\n}\t\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A6NyLuWgTyvFMybKC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:41:06"}
{"_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": "8yvSJhKNjEKfnkXZt", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\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": "GFaaKapCp9Xp6iNdo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:43:45"}
{"_id": "qfXLsLSBHegS3Wmmx", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\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\tf:File | link.f in iden implies f in Trash\n}", "derivationOf": "CCeP63Gk8xXuEMz2L", "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-6-14 22:35:27"}
{"_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": "R5i7u8kZzEppbL3x4", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R4ktHDiyLavhnkgWC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:50:51"}
{"_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": "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": "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": "nGtqC8nhR2eciyBPL", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv7", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\nrun inv7 for 2\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xGgna7bLZCXkF32Ep", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:15:28"}
{"_id": "HbvgrqLGyaZndFsq9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File | some 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": "sgaEnjMmCgNiwEayN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:15:18"}
{"_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": "h73eiMBj6Tof8bBqk", "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  (all t,u : File| some x : File | t->u in link implies u->x not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kCtsKAk62NmtypNFB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:47:50"}
{"_id": "mX7g44aQPAbPYqevw", "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/* 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": "haRXrSfn3K936uqk4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:43:00"}
{"_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": "AefYThNesDX7Xr6u4", "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\tno (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": "7cBxbuf8jheLKABaZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:12:06"}
{"_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": "6YENokhosNHXCzkYm", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZsMu4Q78aWdXayyo3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:00:57"}
{"_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": "ytuXhnBZ6HPeKT2sF", "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' = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GA5WThv4Gphzv7sHT", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:32:33"}
{"_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": "9xJZiXdRyMWeP4axx", "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 {\nall Trash :File|File in Trash and File not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2SfptiY9PXzJRJguc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:38:25"}
{"_id": "8edpbhTJb82RpJei7", "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\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "g3WQkDoFXsFWrAufx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:47"}
{"_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": "GcMq6iiaNSQK9G9FM", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies f1 not in Trash and f2 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 f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "pRnFwdWbQYf8fEeuG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:28:38"}
{"_id": "QWb8LjYv7aXSJgLQ5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {} \n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { \n   \n  all f : File | f not in Trash \n}\n\n\n/* 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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "W9osfobij374oeMbj", "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": "2020-11-5 10:05:19"}
{"_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": "cGaKaSpbddcFqP8iW", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* 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": "9PvHdeMFiouTeoLg8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 11:41:50"}
{"_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": "9Muo7fP6DM9K2FSow", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  all \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GKZf9KJFBQ8pHrdQ2", "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": "2020-10-22 10:26:32"}
{"_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": "T8LS8j58dbD63SHaL", "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 t : Trash | no t \n\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\tall f : File | all p : f.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": "wG3Pb2Mzp5aSxeP9C", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-4 20:54:40"}
{"_id": "HXWyZTPj4xy8hH77z", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | (all l : f.link | l not in Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | (#f.link)=0\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uaHaMuDJ2YFPZyAkZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:53:27"}
{"_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": "QkujNJdk5u9bG7MCK", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "W5wuSCidh3ByGF8ux", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:58:43"}
{"_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": "EwWKa8MB2gLiYMLZd", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n  all f : File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Azj5m6v3Yd5DBt3Yf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:29:31"}
{"_id": "JatRK2XzSKnMtsKcA", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\t#(link.File) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nvpC6rkd2a44djPam", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:35:18"}
{"_id": "rm8xjZLa7MNgKqQJE", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | f -> link > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JatRK2XzSKnMtsKcA", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:35:59"}
{"_id": "2MvJptAK9uz2dm69x", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GSuiGR8grEuSsM37w", "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-10-27 19:30:58"}
{"_id": "HgPrxYbbobrFtYhRW", "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": "FF3FdydMH6K26QKwy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:22:39"}
{"_id": "6AQ3GAqBPoDecstR6", "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  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": "brFprg9QQBfSMoxXN", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:27:39"}
{"_id": "x9m2XnAPDhzCefPv8", "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 f:File| f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | no Protected and Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yxoWnysynSj3jqd7y", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:36:55"}
{"_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": "3N3CFCFREN6FoDdWo", "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 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": "vp6CekHkwv5zLhgpD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:24:36"}
{"_id": "R7n5GAMRZhmHEn2pr", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlinks 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": "muHjFYEBura9MAx2C", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:27:23"}
{"_id": "zFBf3jhbjFsHkRcjN", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n\tall l : File.link | l  in Trash  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cy82R4xpYeTKLs8q8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 05:16:51"}
{"_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": "c4H2WsCjyuGWQrvWc", "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": "FGrmKA5kqMyM8XLtz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:40:31"}
{"_id": "c5HNk77vDGYCwa7XL", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not 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": "HdLAmx7tZzXK3bhEG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:41:05"}
{"_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": "7LKwW8FJkpbkpPCAh", "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 it 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": "iRSpAcQ9MK9FhuLJN", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:27:07"}
{"_id": "Q7ozZjaHTbYghdjqR", "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 t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tx in File\n  \tx = 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": "xaBRT6LcwoGfQPELC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:30:30"}
{"_id": "PYGSfGdqT8DwdXqTi", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies l\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": "2j2c5nTZNjg8et5vy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:45:51"}
{"_id": "oA26rGePQLTYDcqQv", "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  \n  all t : Trash | t not in File\n\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 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": "FMzaqSDYn7uP9hX6C", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:13:41"}
{"_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": "SqbdPsiEGZZEgTB9n", "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": "8XfQyeoHzG563uYoW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:37:34"}
{"_id": "cTphknybqoBA6p9Jr", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | (some l : f.link )\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "ivG5P2kxJzmBADATm", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:04:01"}
{"_id": "wxbpcBP7PvadLhh4v", "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  all 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/* Some 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\tall f1,  f2: File | f1.link = f2.link implies f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "FgaGJquRtzp7vHd3H", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:54:06"}
{"_id": "gXWyZXrEHb8jA7RAh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | some 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": "7eFBBeirM6Pw2Kee8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:09:35"}
{"_id": "BW2SAZjcHnfaG3Loo", "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\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": "bL6yfZDnEncWkcxc9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:35:38"}
{"_id": "TTWQv8jbGDi3LnkHH", "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  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2 = f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R4CzKt9ZdE7HCyuG7", "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-10-28 21:04:21"}
{"_id": "rgaQna4C5wZZMA6Bf", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall f,l : File | (l in f.link and f i Trash) implies l in Trash\n}", "derivationOf": "uuhnWGycM642zPW7Z", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:34:15"}
{"_id": "eXnZWdAb72fttqMHg", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-19 14:55:02"}
{"_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": "srWkXn6uaKtWzTCmu", "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": "2020-10-22 10:23:11"}
{"_id": "KK7CWxAs27FH5hKLD", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv9", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\nrun inv9 for 2\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FmQJc5hmFzu2edpLL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:18:07"}
{"_id": "Lbjqyb2FsxNtw6nYZ", "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 f1, f2, f3 : File | ((f1 -> f2 in link and f1 -> 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}", "derivationOf": "nQWqA3YaScGdNLWnL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 20:36:36"}
{"_id": "TBP7dgs7ofFybA4uz", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "vAbTTsPwNBPbRJTbY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:26"}
{"_id": "AHoEm9vGDgfhbTTck", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File l, u : File | f -> l in link and f -> u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "Gnb8ZE8mjLsJwtZTR", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:43:02"}
{"_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": "bFPQc49StPESPMuT5", "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": "pQMr9RkTnDJNCneyr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:08:00"}
{"_id": "NKnNQTjDqW7NJSf6A", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "eSojkLGjNiYCLWXLc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:33"}
{"_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": "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": "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": "2ZQntjcmxaaRoWjeG", "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 { all t1.link, t2.Trash | t1->t2 not in File\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": "9zhgHXY8JJNSLxy23", "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-10-29 09:36:30"}
{"_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": "kbju2L4cEFsmsk5NX", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 not in link implies f2 in Trash\n}", "derivationOf": "hqoXoMmRj3a7Gu2Jh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 20:53:09"}
{"_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": "ERGLgAEGjgiZHr2dA", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome 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": "ntdGKZTYmHkrYvC8a", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-2 03:50:17"}
{"_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": "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": "TxizGPXvTSRhvpW5j", "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 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}", "derivationOf": "YNY3cuSzpLFzsKQdj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:29:14"}
{"_id": "XXKJWvurgigAakgM8", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : 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": "z25sCQNbjxCcvcBss", "msg": "This expression failed to be typechecked line 55, column 10, filename=/tmp/alloy_heredoc4096490045319187430.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:22:37"}
{"_id": "4nLZN2cBfBDcmrTAA", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "98bhqgTnEJuv7bw7z", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:37:39"}
{"_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": "2HkAeWKE2aRzHt9wd", "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 { no t 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": "ssgzCAFqRZRBFoyv4", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:06:53"}
{"_id": "MQpi8yA3r2Swiyp88", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ao7jKE4vbsgQfRs96", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:08:54"}
{"_id": "KxEunsFzKiCWRga2Q", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 . f1->f2 not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zw9qko2ribbc2dLFj", "msg": "This cannot be a legal relational join where\nleft hand side is f1 (type = {this/File})\nright hand side is f1 (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-30 17:20:35"}
{"_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": "GnZ6rEppeaHriBCaB", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : link | l in link\n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t7EqiM8GNkn5xb827", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 05:02:07"}
{"_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": "uxvCE7HkaXG6AZLnB", "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 = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tone d: File | Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:26:54"}
{"_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": "beh38qLdK5i8Qifcc", "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 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 : not in Protected | 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": "mM5YYRSgL9Naz9gyS", "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-10-29 09:36:28"}
{"_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": "Hzy4KtpJpdiFkmKz4", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,x:File | f->x in Trash\n\n}", "derivationOf": "BntHDiLKM8hofvWne", "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-11-7 17:52:49"}
{"_id": "yfkwttf2G3MPfFBx7", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash \n}", "derivationOf": "uN4m879JC5XRTR7vQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:59:53"}
{"_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": "njrwP4FWrdMa3ZYiy", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \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": "xSWKuMXX74RGDceyY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:32:16"}
{"_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": "oB44dMvZ6NZkBMnAR", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "ryHr79esJQcmAFoEQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:12:21"}
{"_id": "yxm4mT3DQnR4zcKif", "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 and f not in Trash\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\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CRkb9vvAZBQovxX84", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:42:40"}
{"_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": "f7ZwkYgSpibiFRBLu", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Drw5uNvknDzgzu5MC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:01:05"}
{"_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": "CQFKxs7DeqRgeX5gy", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "XkJvga8ZC74yNJn9k", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:09:43"}
{"_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": "LsveR9uSrDHQQkkeW", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash | f.link in Trash\n}", "derivationOf": "ddJkXfiCe2xsq5SQG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:52:31"}
{"_id": "A9pKc6gy2uMBk53e8", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f : File  | (all l : f.link | l 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": "7WMoEZm28vLAGxjEh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 17:17:16"}
{"_id": "bwwbfddv3J9RcCtiL", "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}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ky37fP6ese2gtux7C", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:29:37"}
{"_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": "zXSatz5NsE2XZxFii", "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": "2020-10-28 00:53:41"}
{"_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": "5oEG5ecjXoX64mTZ5", "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\n/* All files are deleted. */\npred inv2 {\n\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": "t8uvRZx6P8RYCZY4n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:00:11"}
{"_id": "b4vz29qEeTSewkbiJ", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some l : link | f->l in \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "STd2G3LCLCffkDfLp", "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": "2020-10-22 10:35:39"}
{"_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": "sQD8uzwYSfHH5DaKP", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | (f.l) in f)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Da5XfnzB4ENMoqDC7", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:59:04"}
{"_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": "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": "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": "gLdQef86itxwPSiYm", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected and 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": "652yaAZQeZR58WRvk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:28:43"}
{"_id": "iJMvmFRtq7q93bpPm", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f :File, a1,a2 :File |\n  f->a1 in link and f->a2 in link implies a1=a2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ikcNKQ9vSiBuJsvej", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:09:55"}
{"_id": "iYyywfAicCk2wXpPi", "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 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": "9J2cMMEx2GH3wC79P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:37:12"}
{"_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": "EZPdv7eBpZxaiFgYf", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall 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": "Rz3AwKnLTr33vtKfT", "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-10-22 10:27:31"}
{"_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": "wTpFamygs8jZH7SHN", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies ( l.link in Trash ))\n}", "derivationOf": "Y8BLYME22MmQG5RNB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:24:25"}
{"_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": "eFaiWnzWE8NYCrewF", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-19 14:55:23"}
{"_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": "s8eYY6ZiaG6YWPawE", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p 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": "SWh5p9vfMchKWxhbc", "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-10-22 10:38:37"}
{"_id": "TysAZpGMPbGdxvFhd", "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  \n  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "vJByh5w6k5ixrFKeE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:00:21"}
{"_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": "NECXQPaHLhgwQdEgg", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wmbWpdiXzbNnLKZiy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:38:05"}
{"_id": "SjPFHQ4fWjKinj5c6", "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 | 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": "E2mLn5JcLRhn8Qspo", "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-10-22 10:26:13"}
{"_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": "2A5e35xnDAGjkFJbC", "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 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 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}", "derivationOf": "TxizGPXvTSRhvpW5j", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:30:39"}
{"_id": "WCxftT2jAcThQt82L", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,b : File | (f->b in link and f in Trash) implies b in Trash\n}", "derivationOf": "S5x8Ds2BxxqMXGj9F", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:23:29"}
{"_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": "hifXmEWH2TLzCAtR8", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MTp7hqLtcR8mJbY3E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:45:58"}
{"_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": "pcv4xuPDBuQWMmxbs", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in link.File implies f in Trash\n}", "derivationOf": "tHn5XiR3GuPXLtesi", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:40:36"}
{"_id": "QN32PE9CbZAZR9vFt", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  Trash = 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": "bkLhBRjYaJa4Nc5vQ", "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-10-22 10:24:54"}
{"_id": "sqp4at8PTxtCXYBXP", "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\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mm5oxdeinqEwCCnMQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:08:17"}
{"_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": "zdDqnTPemRR2w9pix", "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/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected and 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": "66jpacJatdyiKnBmo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:41:08"}
{"_id": "3meiDXwiCaD5ngc42", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies u 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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:58:27"}
{"_id": "hrFizJNaHYD4wtBQS", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x in link implies u=x)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies t not in Trash and u 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": "LxMyXM9WuyLJEEvqW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:25:16"}
{"_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": "9GjRcjwHBzhWQ4iCr", "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\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  some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f not in Protected implies (f in Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ckhbFi2PXgetBdFx4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:41:40"}
{"_id": "Ng6yTDhDmteF6oQBW", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash \n}", "derivationOf": "KgyeAZbNfZQ7mPhWW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:37:29"}
{"_id": "QoJc7nYt5rcQ42n5q", "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": "6q7MqhQANvAtNX77Z", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:31:20"}
{"_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": "pK69gZjL8gh2AMyrB", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JHSzLNZp9mzfF4jwa", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:45:34"}
{"_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": "ciufWnSHEmMDYwDmE", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 : File | all f2: f1.link | no t: Trash | f2 in 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": "6qbkLxkZD8wkBy3dM", "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-2-17 14:33:48"}
{"_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": "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": "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": "5YEkRy2buuE4Zm7Ek", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "v5kKqK6pdCHPGEDKy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:08"}
{"_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": "X7cWv7c5dy8XcKWPz", "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 and 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": "6PyQPX2JpvTPBxhQP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:40:33"}
{"_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": "zS5RXw8nXvtCR4KQy", "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 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 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, f3 : File | f1->f2 in link implies f3->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qeYPhYLzJKAEvjS2q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:38:47"}
{"_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": "nvpC6rkd2a44djPam", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tlink.File > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZcbnBs69LyjD2Wjvv", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:34:59"}
{"_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": "uxdiyA5t8B3x6YJ5a", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "WeKccgusoJQeeCien", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:43"}
{"_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": "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": "CWYNQ9hHsxA2cWciq", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-19 14:55:25"}
{"_id": "2i9pvTNLyp9CKfyST", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "W2ZDtsdAsLiKFaDfm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:49"}
{"_id": "9exAGTvNhWFawxpe5", "cmd_c": false, "cmd_i": 1, "cmd_n": "inv10", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\nrun inv9 for 2\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}\nrun inv10 for 2", "derivationOf": "b2dJ9cHijTkTiGyGu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:20:45"}
{"_id": "2dgqq77BjvxsYQvqk", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "C3Bkx9qSR9eEu9Gbr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:49:09"}
{"_id": "jK7GRBH4XaTQYKxLw", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:File | f not in Trash and 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": "scqvMcMhAxre79dBA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 09:42:07"}
{"_id": "HZ36qgPtegXxeTfgj", "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  all x : x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vaMd6r6ot8JqDsXwm", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:30:25"}
{"_id": "nZhBDd3ZZkRpjBaJ6", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "hnHybFHEy3kDmHKfi", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:11:44"}
{"_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": "T4rv2m56PmnhsRkMh", "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  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "GsKFAysqrygihmJQj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:14:44"}
{"_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": "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": "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": "BTMk52yLwMGrzGkwN", "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 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y :File |f->x in link implies (f->x)->y not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,x :File |f->x in link and f->x in Trash implies x in Trash\n}", "derivationOf": "28osrcR35MvFYMiFs", "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": "2020-10-23 16:35:57"}
{"_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": "P9jw6S5adcWAp9v2K", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FbqeENWirvTAMaE76", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:37:52"}
{"_id": "t2Xv87KbkpR3xaLkd", "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 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": "d8jeAysu39aTpHF78", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:09"}
{"_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": "xycbiczpFmCgNqcxK", "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\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": "4k3Fr3Eezj7zebznu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:05:26"}
{"_id": "wXeen5picz6d9WB7b", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9XsPSpwgATrFjZSt2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:40"}
{"_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": "7rzeSvyJme56EXEF2", "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}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4QkhmrGnpW3gRaEv6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:24:02"}
{"_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": "bnhwyELTX9iZ3gDnW", "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,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mmr2bAg9Dpus6spc9", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:00:49"}
{"_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": "GYPqxFZM8m3cbf8rE", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \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": "en68YFz7SCEAW6gMn", "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-10-22 10:34:17"}
{"_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": "o6KjBRCGonyLfXtoE", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "NDuHeiCiqfaohWqqo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:11:19"}
{"_id": "BwK9oTqyMxvq3h4KH", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies (t not in Trash and u 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": "CdRboPbBMDgW7rQu3", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:38:50"}
{"_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": "m2YEfFxtJtkoiJaS3", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5sWLfEbvGiTEXTdP2", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:25:46"}
{"_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": "cJwCNBZMnr3P8zqvC", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "RmnEQ5iS3JRSNCr2y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:24:41"}
{"_id": "kmCci6ZLEoMn6qygL", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a,b :File |\n  f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "keGFLDfZgkJBNsndo", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:10:44"}
{"_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": "qPzNovjhYwNYY58SM", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "Qhomhe2owubzHKCEx", "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": {}, "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": "File", "visibility": false}, {"type": "this/Trash:File", "visibility": false}]}}, "time": "2020-11-6 16:51:36"}
{"_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": "qHbvHMXqwDTFo4DmJ", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "nYgAQCCcQnXLsfuTS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:22:42"}
{"_id": "enuSBETTCieHqndFv", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t -> u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  (f->u in link) implies (f->u in Trash implies u in Trash) \n  \n}", "derivationOf": "YBCNmTfJ35hd92DqJ", "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-10-29 10:50:55"}
{"_id": "stgxiPNMobkDujfXi", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "STH9NLFPG9cfdrF7j", "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-10-22 10:46:06"}
{"_id": "u5TnwMqTbGtkxSsgn", "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": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 17:08:44"}
{"_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": "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": "4P8pcBYJsPatRAred", "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 b:File | b 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": "qqHd9puRyDRRwzKgm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:11:24"}
{"_id": "iBcqiTjtkY3RRQRQL", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "LaB6FJr7Nrn7bGGZX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:03:56"}
{"_id": "TPZAbxTmSkaBNbgmN", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not Protected) implies f in Trash\n}", "derivationOf": "raCc4ekLeHA4tLqdr", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:48:40"}
{"_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": "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": "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": "FtJ6jiE2BnwHgnehn", "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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:25:25"}
{"_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": "R4CzKt9ZdE7HCyuG7", "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  all f1,f2,f3 : File | f1->f2 in link and f1 -> f3 in link implies f2 = f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DrgFgvXEyb7PHb78w", "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-10-28 21:04:11"}
{"_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": "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": "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": "kXhY3PAfirr6sovNa", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "25KstaxqZdf9rRadr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:26:49"}
{"_id": "PJdsS2SaczDMvJ9np", "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 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nZSpLWCkWmCPQW3ZX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:30:38"}
{"_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": "CBsiPBJAJeK8NYSTe", "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  all f : File | f not in Trash\n  \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 | p 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  all f : File |one f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n \n  \n}", "derivationOf": "fFkpTZSBHT8ykmfQm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 11:40:27"}
{"_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": "Wf7umMxXnmNZh9q2x", "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\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": "mz6mvFrqpxwJgqbKr", "msg": "The name \"empty\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:27:30"}
{"_id": "bKWpEh3SFWSMeNueX", "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  all 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/* Some 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\tall f1,  f2: File | f1->f2 in link implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "J9LLCCaWGezhEjo4G", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:30:23"}
{"_id": "zknkDmQBZ5s3xHxhy", "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": "FtJ6jiE2BnwHgnehn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:25:28"}
{"_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": "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": "f8cWdqQwhcF6JajEz", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(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": "kap6HzTigNRhz42Ls", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:57:16"}
{"_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": "aEMa9szeZY7sJpQEE", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies f.link not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "wWKZ3xLfFtPXi85cr", "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-10-29 09:21:39"}
{"_id": "NLL3d8PsQR5CHxoxo", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "MicJo7P9rWRq8m66K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:22:25"}
{"_id": "9CdY5uLxeWrhD7yaR", "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\n}\n\n/* All files are deleted. */\npred inv2[t: File] {\n  t not in Trash\n  Trash' = Trash + t\n  File' = File\n  Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GQG54RtMwJnZ4hajd", "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/inv2.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:15"}
{"_id": "BeRZik9uShvuqksWe", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone link.f \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": "6L6mvd264erqAPfEY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:29:30"}
{"_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": "zHsoZMLX9W7NShdWj", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | 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, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk 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": "cD9KbqjXiwjbAmpE4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:49:14"}
{"_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": "4swrGmswetR7dyatB", "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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:26:26"}
{"_id": "WeKccgusoJQeeCien", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "ijq88sdRZtaLQzCc5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:42"}
{"_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": "Wu7dCudpLfXu6TxWb", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies ( l.link in Trash))\n\n}", "derivationOf": "xsW4aAcE98jwYvehA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:22:21"}
{"_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": "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": "HRdQrP9XcRpf4AkA6", "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\tno (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File-File')\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qoHj95pigzyKjtuzc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:11:24"}
{"_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": "EieBrnGosAibtNYgh", "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 {\nno 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": "2021-1-13 21:20:29"}
{"_id": "qK8kB9mfAiqmCYZzA", "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 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 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, f3 : File | f1->f2 in link implies f3->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zS5RXw8nXvtCR4KQy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:38:54"}
{"_id": "PGw9CNfzciXQmdfzs", "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": "YrJYn4LxGzTzSZrov", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:30:10"}
{"_id": "LrWJckt8zhBvKGZDF", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f1,f2,f3 : File, l : link | 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": "yPhbE6ycaMA8ARZjK", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:52:20"}
{"_id": "riSYmK9wvYeip6Ds9", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File, l,t: link | f->l in File and f->t in File implies l=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": "hdCtEuRd75jaX7gxP", "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-10-29 10:05:38"}
{"_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": "euo2yiwsXAyciWYPb", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "63EQBKKxMo2Sk7cWr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:18:27"}
{"_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": "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": "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": "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": "xP5tnRknbDzXt67wR", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "pCqBLbY8cbmoa2TAB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:14"}
{"_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": "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": "GjY8sQXSyJYf89jcZ", "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 { all f in 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 \"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-10-24 10:53:46"}
{"_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": "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": "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": "x5YXauuLJdybc7xR5", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies (f1 and f2 in File-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": "GeyKH9SJYkxSNqQFF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 02:52:33"}
{"_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": "Lykh6o6L9wkMJAePS", "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  all 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/* Some 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\t\n  \tall f1, f2 : File | f1.link = f2.link implies f1 = f2 and f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "ZD5cyNHQxMSpLtC6r", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 15:07:16"}
{"_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": "gzPY9YzvQk96pRvkh", "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  all f1,f2,f3 : File | f1->f2 in File and f1->f3 in File implies f2 = f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HnmMgBGFxZ3fbrQiL", "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-10-28 21:03:10"}
{"_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": "A6iw5L64aCLuMPZmv", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies l.link in Trash\n}", "derivationOf": "WT4JhZrx4SbKoysD3", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:17:18"}
{"_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": "LGHXqBdCmFQYjt4gu", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "rE5GmxzayG68NqoFc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:35:59"}
{"_id": "XXPZAkGjBWfX35WaX", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ntt8EGtGhP6GHWFEw", "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-10-22 10:28:58"}
{"_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": "NGse5r6xuKhTGr9DF", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies f in Trash )\n\n}", "derivationOf": "a7zhGgYnymDfci7C6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:39:56"}
{"_id": "oBP6DcKGp25W3Saj6", "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 : univ + 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": "wNP4tpT7MbFXfyma5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:50:10"}
{"_id": "x9RfHPMYvH7w4mdQj", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f2 in Trash implies f1->f2 not in link\n}", "derivationOf": "kbju2L4cEFsmsk5NX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:59:23"}
{"_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": "EoCYX9E6LHTWxEKE3", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | l implies some f\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": "DSgpHh6YbMKRXsauy", "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-10-22 10:45:05"}
{"_id": "egNA8FijDT4Mc5C5n", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "P6avXw4e7uzaujrdj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:52:02"}
{"_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": "432GxkcP4tgrhPFTE", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  #link = 2\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kqeurPSry9z47JciK", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:29:25"}
{"_id": "e37vmm6F7cFFr2yKe", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "DSS7EavnSM3Wxtapq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:04:55"}
{"_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": "Qe8ysJmm7WTRyMjy2", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies f in Trash)\n\n}", "derivationOf": "T6BQ75Jf3b7xXGD48", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:29:02"}
{"_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": "MoExXBT5Dzt2GGP6n", "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-10-29 11:39:11"}
{"_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": "JijHFmb2KHFMQbSFR", "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  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File, f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tnot (some f1 : File, f2 : File | f1->f2 in 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 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": "r2cwYtwi96csZ96NB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:29:39"}
{"_id": "Xf4Qt5oELFpMcs5Y8", "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\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  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": "2wxjf5Mhxwgh7iQAf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:37:28"}
{"_id": "o8WEhLwQG5hRud6hL", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-5 11:23:01"}
{"_id": "rQuNxpy5EFqknKmCR", "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\tno FIle\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "The name \"FIle\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:22:19"}
{"_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": "mdtyZZbniXYGHZaAD", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xZkhqikoTEsNhE5sd", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:23:44"}
{"_id": "AcH8j93DhLqBgx7Mg", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash*/\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "Wvjq9AjEXR4RNhExy", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:07:01"}
{"_id": "nDQwxeFEhFr8TRLMK", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "Hqi7XgGcLx7AWyiYz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:13"}
{"_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": "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": "Wg2h5Xj79QN5fq9K9", "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 t : Trash , f : File | t->f not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2RRrymmZwbaRckzTr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:43:35"}
{"_id": "cug9QPDhmRSFdEJEi", "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  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 expression failed to be typechecked line 32, column 3, filename=/tmp/alloy_heredoc15394703228688842797.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:19:36"}
{"_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": "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": "EBDKs4XdyWig48pJE", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "C5JSskd6xhbcX7GZu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:58:20"}
{"_id": "STewfWdkLMgYEA9Pf", "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 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\tlink not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3N3CFCFREN6FoDdWo", "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-10-29 09:26:14"}
{"_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": "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": "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": "vfyqdhSzFBE4eSFya", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | all l,t : link | f->l->g in link and f->t->g in link implies l=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": "agRiRf9vLk7vHNWLZ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:11:05"}
{"_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": "XkJvga8ZC74yNJn9k", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "ttqmXw5y5MN4XJHnC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:09:38"}
{"_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": "43jEo7KBEj9v6Jiqz", "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 & Trash != 0 \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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "XPLv2gjZgMFGchMA3", "msg": "== is redundant, because the left and right expressions are always disjoint.\nLeft type = {this/File}\nRight type = {Int}", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 22:53:22"}
{"_id": "CdRboPbBMDgW7rQu3", "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\t(all t,u,v : File | (t->u in link and t->v in link) implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-27 19:37:56"}
{"_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": "9pS6SryPZXrDzX2jk", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File,  | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t!=u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "snG3kL4NdTajn5Lcu", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:27:42"}
{"_id": "P94boTCtaQaWFBBaq", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected and 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": "u3238H3CBroSiag98", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:22:14"}
{"_id": "26SubtYgvXpNfyWfd", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "EGp72vW6Mx3YCJx4m", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:48:59"}
{"_id": "EoF99NQZuQ7RYCpHF", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 { all f: File | f 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": "C6EznyaGfnPPCR2qE", "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-10-29 09:59:38"}
{"_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": "cYcwJRm6dvhX9aJjS", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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": "xycbiczpFmCgNqcxK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:08:57"}
{"_id": "77EgvyAmntx7RjBat", "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/* All files are deleted. */\npred inv2 [t : File] { t 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": "id4ikdCoSDfRuHQMA", "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/inv2.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:34:32"}
{"_id": "Azj5m6v3Yd5DBt3Yf", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n  all f : File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n  all f : File.link | f in Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ctFgNpj9dxNEGEz9w", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:28:58"}
{"_id": "fPtrC8tyCCMGtKn6G", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to 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/* ", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-10 18:52:34"}
{"_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": "pRnFwdWbQYf8fEeuG", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies f1 not in Trash and f2 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 f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KhRyi8Q9yDZGR7kSX", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:28:00"}
{"_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": "pNA4GaC4mx8BRRm72", "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}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2:File (f->f1 in link and f->f2 in link implies f1=f2))\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Lj5SsWSnu6nmGJoRo", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:43:24"}
{"_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": "ihy8SF2FMRgpGoEEZ", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\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": "2Zmdab9S7yFwHta9j", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 02:48:25"}
{"_id": "u4PTXQ7b2jNG8Jaub", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ccZ2AQNpkxEQq82iN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:11:42"}
{"_id": "ueyXbMTjcmEk2XAkk", "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 { all t1->...->tn in File {} | t1->...->tn 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": "jDTNf22Po8MbGwtbA", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 11:59:33"}
{"_id": "GA5WThv4Gphzv7sHT", "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\n \tt = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Sa2iiPz2CAFCRupt3", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:32:03"}
{"_id": "wHtFP2znZCkWFfmka", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies f1 not in Trash and f2 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": "CaSvZwETZa5KEQf8r", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:24:26"}
{"_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": "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": "cEnToaJtBtAcQ7k3J", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "ahtCHbTKnMPWp8Nxn", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:52:54"}
{"_id": "rCDXBbggFR8WpfkWK", "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 implies t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5sDEmaaQQJ2WdNmXp", "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": "2020-2-17 14:05:59"}
{"_id": "JvLWoDEfNFynKjo9C", "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  all t : Trash | t not in File\n\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 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  all f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8dDCXJJtMRknzCkQe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 04:17:10"}
{"_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": "6PyQPX2JpvTPBxhQP", "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/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NECXQPaHLhgwQdEgg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:40:16"}
{"_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": "ZwEfMgDWQiF2ogFuQ", "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  all f : File | f not in Trash\n  \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 | p 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  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n \n  \n}", "derivationOf": "CBsiPBJAJeK8NYSTe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:40:48"}
{"_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": "4Szh8fyatnHvCm6qJ", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "26SubtYgvXpNfyWfd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:49:02"}
{"_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": "GwRj22vQFgZTNLYoY", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk 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": "CQihG75tzuToBkWhJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:53:03"}
{"_id": "YxFyFxJaKWYCzq9HF", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,l : File, f.link | l in Trash implies f in Trash\n}", "derivationOf": "B2XEikLqkrFKBMo3W", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 18:29:55"}
{"_id": "e3ZLTk3ktfi9jmFZ6", "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  (all t,u : File| all x : File | t->u in link implies u->x not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h73eiMBj6Tof8bBqk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:47:55"}
{"_id": "qqHd9puRyDRRwzKgm", "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-11-17 22:09:53"}
{"_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": "tpiatkFz9aWtr6AF3", "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 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: 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": "GsM8T2raAHRNGWpiy", "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-10-29 09:03:29"}
{"_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": "EzosBgcHGSNA29o6X", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aCuDWWrFExtw5sw8g", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:22:45"}
{"_id": "PBh49yRzzPbRd64w3", "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, f1, f2 : File | (f -> f1 in link and f1 -> f2 in link) implies f1 = f2  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cgJZZ57gySeYQ5KYM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 20:26:04"}
{"_id": "rSXscXKN3MiYKw2hW", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n\tall f:File, l : f.link | l in Trash  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zFBf3jhbjFsHkRcjN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 05:17:29"}
{"_id": "EFo5TPYSFEzRWLygG", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KDmeGGxByXGFriWEC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:47"}
{"_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": "53bPRBncu8Agt3j4G", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies (t not in Trash or u 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": "BwK9oTqyMxvq3h4KH", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:39:26"}
{"_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": "2bjdjGLePbSLo9Jsh", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "NnLyAXZ5np56gytqq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:29"}
{"_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": "9zhgHXY8JJNSLxy23", "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 { all t.File | all p.Trash : t->p not in File\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 \"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-10-29 09:31:23"}
{"_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": "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": "Cwrw7CKpsnDsF7jc9", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f1,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": "ihy8SF2FMRgpGoEEZ", "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-10-29 02:51:35"}
{"_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": "GMQqeqL4kA5epYMLz", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies f=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File {\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": "wfGAuYpY9ajoD6sD9", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 18:07:28"}
{"_id": "GoJR7Ed2QjSQNKgtN", "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 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 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}", "derivationOf": "2A5e35xnDAGjkFJbC", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:30:44"}
{"_id": "Qm4miuPtaJ7yhXuLf", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies t->u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "JGzrfjFHNNeS6bbND", "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-10-27 19:56:59"}
{"_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": "qmvpbDrYaJjx3ojyj", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \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": "xmMSkfLBZjvMfWYcs", "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-10-27 16:26:33"}
{"_id": "TRcKJGmyzm7fbekBC", "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\tbruh : File : bruh 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": "B48FWFzyAgkMs2Rap", "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-10-28 19:13:37"}
{"_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": "BmXPP98MoCKpPjs4i", "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 | true\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SjPFHQ4fWjKinj5c6", "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-10-22 10:26:22"}
{"_id": "f5qSu2nRkeAj2zQTk", "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": "ShSY8veSEWrJPW4aW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:29:23"}
{"_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": "cYH4ytu2bPpK9kjnA", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some f: File | f not 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": "MLfdsTNNP4iHN9DTp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:41:33"}
{"_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": "dc565Asmdm6fKpgw6", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AXtEqG4weZqACKQAs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:47:22"}
{"_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": "CQKTHPuz8iT6tpsz8", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "nDQwxeFEhFr8TRLMK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:16"}
{"_id": "xTcMP8ra7ZNBYdig4", "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 | 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 | 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": "ruW3L6kk8dcvdn6ov", "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-10-22 10:39:57"}
{"_id": "Xk9Cgizz7snDBsZCT", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all links not in Thrash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-24 16:08:16"}
{"_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": "78uHLFGaGqFo5KKys", "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 { all f,g : File | f->g in link and g->f in link implies f=g\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "db7AdSW7voAv93AaC", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-3 10:41:52"}
{"_id": "fPofYQRnY4NQSy4FM", "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  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TTWQv8jbGDi3LnkHH", "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-10-28 21:04:28"}
{"_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": "W6bYPChgu7tM5933C", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f not in Trash implies f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "wyZ2W383AenRW3Sek", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:06:09"}
{"_id": "AztMfKwvryzyPSYB5", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "e37vmm6F7cFFr2yKe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:06:00"}
{"_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": "9WDjYfzm4o7MkfE3W", "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 {t1->...->tn in File | t1->...->tn 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": "dSXQTBnjTfwjzu5jd", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:07:48"}
{"_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": "nMvY6xkANeC86ptJe", "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 { all f in 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": "GjY8sQXSyJYf89jcZ", "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-10-24 11:01:45"}
{"_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": "ivs2AsyFfRhzP3YFh", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\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": "4P8pcBYJsPatRAred", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:17:04"}
{"_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": "Yj8vkRK4fcQixNT6f", "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  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : Protected | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "J8wZG3cMRFWLnJaWt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:05:45"}
{"_id": "xuobpsCpwvai4tFLd", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies 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": "CQdGQByJbDgCqC234", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:31:15"}
{"_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": "YqKq2pvsWYKY4LWm2", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | f->g in link and g->f in link implies f=g\n  \n}\n  \n/* There is no deleted link. */\npred inv7 { all l: link | l 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": "7Svn53HF2kSWQCqAW", "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-10-29 10:33:27"}
{"_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": "Ek3aioZb4ABFwgvdA", "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 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": "dJyqLDrCmmwMgpLnw", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 20:24:17"}
{"_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": "G9CsBQahwe9RctbH8", "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 File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rQuNxpy5EFqknKmCR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:22:32"}
{"_id": "acEWhmGoGZErrwEgX", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | (some l : f.link | True)\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "2qrEbA37qi4jdpG5w", "msg": "The name \"True\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:04:20"}
{"_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": "y5fAKuvwfauc4M2uR", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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 p : Protected | p 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": "cYcwJRm6dvhX9aJjS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:16:13"}
{"_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": "wHSpvDof8gioAYSJu", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "aQPM7RWwERPhmXbKr", "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": 577.6666870117188, "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}]}}, "time": "2020-10-28 21:42:34"}
{"_id": "2tqsfuZZqSmQ7smeB", "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-10-30 16:43:39"}
{"_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": "JfF4XYzoGN2DdPuPi", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash -> f.link in Trash\n\n}", "derivationOf": "qSjbSQRQMWf2oL64Q", "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-11-4 22:08:33"}
{"_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": "dGqjLTgaiv2p9yq7v", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "NXmLGcDEEQm5c4GYz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 14:19:57"}
{"_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": "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": "FcKW95v3fkBpRxAon", "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 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": "BFuGrxFo8dF9mzcb7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:20:02"}
{"_id": "uuhnWGycM642zPW7Z", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tno(Trash.link)\n}", "derivationOf": "9jqjNqfAAzGhXY7dt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:32:58"}
{"_id": "rkW5FmXg6cj93miga", "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\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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "PjgiYfiYDpgiXYQXR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-6 16:50:39"}
{"_id": "5sWLfEbvGiTEXTdP2", "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": "2020-10-22 10:17:51"}
{"_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": "3aPHcM8xHmgauY9Hp", "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": "7LKwW8FJkpbkpPCAh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:18"}
{"_id": "wfGAuYpY9ajoD6sD9", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(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": "fbXR8rgbvXaza6dgF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:58:21"}
{"_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": "MpxjSLZYnmiFeNQ55", "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 t : Trash | no t \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": "2020-11-4 20:26:03"}
{"_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": "TWa5BB7TNhPSEQRrR", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MM9XjAdcsH4k9ZS73", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:50:31"}
{"_id": "kx7kaXoftvPM38Qxa", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Tras\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c5HNk77vDGYCwa7XL", "msg": "The name \"Tras\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:41:12"}
{"_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": "FjJaPbaYiaHSTj54X", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File | some 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": "bYycfFsL7AZNu4dq7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:14:26"}
{"_id": "XGeukEoR4zYEgzHsE", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f1 : File | f->f1 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": "sgFjkKbdDdqt9zAN4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:00:43"}
{"_id": "FbqeENWirvTAMaE76", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (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": "MEW2atBhkp3mniXWo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:33:08"}
{"_id": "gA8TjaXMGhsjS57tB", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "Tfksw78pH4ohA8nEb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-19 14:53:56"}
{"_id": "pKtPSDNgaLbrMZKTm", "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 = 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": "HrRvkaD3DxE2RigX4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:45:54"}
{"_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": "3wz8XsHtrJYQqAt4J", "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  some f in 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": "cYtx9SM6u94ZDduTb", "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-10-22 10:29:20"}
{"_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": "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": "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": "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": "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": "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": "CjSqwFL64y2PGwxWB", "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  \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\tnot (some f1, f2 : File | f1->f2 in 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 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": "JijHFmb2KHFMQbSFR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:33:04"}
{"_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": "mRKJY23TbbppWYunb", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "sEchEDmxSCGv4NcTN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:56:55"}
{"_id": "9dv99hvmSnpSLvrLA", "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": "r2zuoDyk7bqAsPCJs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:24:34"}
{"_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": "F6An59XWyn4hz9tXE", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "atCyHzhMvaxPLf8HN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:55:13"}
{"_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": "KWvFTa8ZpHAap8jXE", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "zzMLdXGkFJxcW2mHf", "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-10-29 09:26:36"}
{"_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": "3KnxHk8D3J7JQDtHy", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all 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": "X6mqTiCvuasEpQTRy", "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-10-22 10:36:32"}
{"_id": "SnDLQtHM2vS8eH3AK", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | not no f.link )\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "LupNAmRwyYSqgfSde", "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-10-27 19:05:11"}
{"_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": "FmQJc5hmFzu2edpLL", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv9", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\nrun inv9 for 2\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nGtqC8nhR2eciyBPL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:17:00"}
{"_id": "mLaYcWv49eBcd4toJ", "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 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": "7vdj97XNKavux2Q46", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:40:45"}
{"_id": "3rt7wG7wRBHAP5P2Q", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link.f implies f in Trash\n}", "derivationOf": "FHH8wjHbmEKrJcpZa", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:40:15"}
{"_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": "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": "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": "ZsMu4Q78aWdXayyo3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-29 09:00:50"}
{"_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": "rcQ5EvdX3PBmYchKo", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash implies u in Trash\n  \n}", "derivationOf": "XiJDij2bvy4A3kKxi", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-31 16:32: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": "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": "5zX9D7Hsr8ZnWTyzp", "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 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 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": "BP3apM4YYzd5yLqQf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:34:56"}
{"_id": "bo5XPLLq5y4RgbRKz", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 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": "JHH4vN5y7XyGdWgcS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:05:37"}
{"_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": "TwXenQ3Sq7rZcwCsL", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "cQZG4D9JGJG5wED5k", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:54"}
{"_id": "sQpHrdXuPNMAiEEd9", "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\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\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bNG3ALykABGpNvJcW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:08:59"}
{"_id": "B48FWFzyAgkMs2Rap", "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\tbruh : File | bruh 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 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-10-28 19:13:28"}
{"_id": "LGCaK4BYqTvzugMJE", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n  \t\n  \tall l1:File.link | some l2:File.link | l1 not in l2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "5uz53HDnePwxL8uBd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:27:26"}
{"_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": "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": "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": "snS6DH5edMKrKCC23", "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 and f not in Trash\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\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LBQgLRMHn24jgkdrP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 17:51:45"}
{"_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": "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": "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": "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": "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": "umsGXs6j2Np5EuBk9", "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\n  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : Protected | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "xGfByrePhGnDeuTue", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:05:54"}
{"_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": "ey9WPWy5WMiCQxEE7", "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  all 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/* Some 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 f, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash\n}", "derivationOf": "PdjGHXADptrdpbeuL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 12:48:33"}
{"_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": "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": "6DLjqtJvGM8cH6Wa8", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.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": "JyhPH2MduuAxq8jzb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:02:15"}
{"_id": "hBvs2g6c4cfnHpN2W", "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  all f : File | f not in Trash \n\n}\n\n/* All files are deleted. */\npred inv2 {\n all f : File | all f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3aPHcM8xHmgauY9Hp", "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-10-22 10:27:50"}
{"_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": "S2qWqyzDGu2t8ckfo", "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 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 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:06:06"}
{"_id": "5WBqeEmuiF7qgH5b8", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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 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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "jyWA7p3oXgL4AQWJx", "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": 599.21875, "y": 265.3333333333333}, "File1": {"x": 449.4140625, "y": 132.66666666666666}, "File2": {"x": 299.609375, "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": "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-10-28 19:57: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": "hHp58dadmqwbCQi3M", "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/* Protected files 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\tall f : File | one f' : File | f.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": "GRQgRhErGNrv4yLzz", "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-10-22 10:42:23"}
{"_id": "JGzrfjFHNNeS6bbND", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies t->u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "GsiwiK8bGTc3RyE8F", "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-10-27 19:56:52"}
{"_id": "48gnEEN5etwjTvQ4i", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | 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": "eNzaZJbEWoSNeWf74", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 10:41:03"}
{"_id": "7tuENG7eutpE45owc", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some 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 | 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": "MP92LtuJFarJ5fSLg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 10:44:24"}
{"_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": "gY7E8pPNxx6XAW2Au", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | one t : Trash | f in 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": "Bw62kPudqvaGmjRdx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:25:54"}
{"_id": "s5LN743RnLMKbxFLw", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File |( f->t in link)) implies t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "28YaMS5akvu5gZPyp", "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-10-29 10:07:09"}
{"_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": "EWdXp8FnqFrs8aXwT", "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  all t : Trash | t not in File\n\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 | p  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": "u9HAHHm389FuiqEga", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:34:39"}
{"_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": "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": "rrJfWYzwnRA3WEQtE", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File | f1 in Trash \n}", "derivationOf": "j34qgCw4txXy5apfn", "msg": "The name \"f1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:36:49"}
{"_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": "gB6P4ovBiybfedeyc", "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[ t : File] {t 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": "fhoepn898KNZXygoG", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:08:33"}
{"_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": "ryHr79esJQcmAFoEQ", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "o6KjBRCGonyLfXtoE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:12:10"}
{"_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": "pDo4KkruBqfhGYkqG", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "TvJGaZTrq53f9e58L", "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-10-29 09:25:45"}
{"_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": "2MeYyDkybmyGFDxca", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | some l \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DnA9AAu7Ng55JAyYQ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:08:33"}
{"_id": "73BpoH6R7BeNkAG7X", "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 x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected | x 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\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KbNQawJ2qtFCw8Ab9", "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-10-22 10:43:38"}
{"_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": "aJCzn4G3e2nhcH4Ez", "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 [ t : Trash|File ] { t 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": "v4iNAQWywHG8op6BD", "msg": "There are 1 possible tokens that can appear here:\n]", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:07:17"}
{"_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": "EXwxRqeT5cakQpYwh", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "ArCWYi7P4Kk75Yxi7", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:16:44"}
{"_id": "n2PkcmPykGB2i9CzY", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:20:53"}
{"_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": "ckwycTKStobaSGiw9", "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  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": "Ka2jQhbJnx7GX3SPv", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:01:20"}
{"_id": "DHLBznDSjNq8tD6Xf", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l.link in Trash)\n}", "derivationOf": "vANDnWvg6pzdKQkHp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:41:57"}
{"_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": "6jkqr7iN7Hd6cAAse", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-27 12:49:49"}
{"_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": "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": "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": "CSczvvtWp2bGXa2Bh", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 not in link implies f2 in Trash\n}", "derivationOf": "HuRcyKhJb4Kth77fk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 20:50:13"}
{"_id": "H3TY2MTqqRycjBBEE", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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 and f in Trash\n}\n\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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": "2021-1-7 14:04:53"}
{"_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": "EGkjSvSYJkyAxvCNF", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies (all li : l | li in Trash))\n}", "derivationOf": "sirjaAd6ciFWbbCKA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:26:52"}
{"_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": "EAcBsuarnxgFs67J4", "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  no Trash\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  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  all 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": "y5fAKuvwfauc4M2uR", "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-10-27 16:21:16"}
{"_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": "qqtFF8oJrbsEPHyER", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies f1 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 f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "GcMq6iiaNSQK9G9FM", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:42:07"}
{"_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": "ijq88sdRZtaLQzCc5", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "aReDJNrMkhbEeWFm8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:39"}
{"_id": "ZfXzK7Jcunnaox3cf", "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  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "gArQps7q77SE6cTaS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:14:06"}
{"_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": "uuv9s55vpu8J2ghS2", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f.links f1 implies f.link and f1.link not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "TNDDiRugh9oXAjuQ4", "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-10-29 09:24:03"}
{"_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": "a33FNwtLAvz4aSZhP", "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": "bFPQc49StPESPMuT5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:09:53"}
{"_id": "9wn7h7dCe77brs93C", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 in link and f -> f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qnJ5uvoNpziRrnrkr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:55:30"}
{"_id": "G5XnyrfM6eNkRshRg", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies ((f1 not in Trash) and (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": "9zECqh33oQLDk2B8i", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 02:53:48"}
{"_id": "aJTYfTLzW3TeCezvv", "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\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Muo7fP6DM9K2FSow", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:26:57"}
{"_id": "STH9NLFPG9cfdrF7j", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "xD9umeCXXaXKHyA78", "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-10-22 10:46:01"}
{"_id": "WavF4iW7koLPczNDX", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f : File | (all t : File f->t in link) implies t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "3LmxhyfTrm4TrbYM3", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:45:16"}
{"_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": "iure5dKtFCbh9pP46", "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\n}\n\n/* All files are deleted. */\npred inv2[t : File] {\n  t not in Trash\n  Trash' = Trash + t\n  File' = File\n  Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9CdY5uLxeWrhD7yaR", "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/inv2.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:29:38"}
{"_id": "gCi52WyzX5FCwa3EA", "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": "2020-10-22 10:17:53"}
{"_id": "fbXR8rgbvXaza6dgF", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(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": "f8cWdqQwhcF6JajEz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:58:18"}
{"_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": "ynqJpBs4dZHQTFWMF", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t not =u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n}", "derivationOf": "wDTnr8unjXNbmjWws", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:30:12"}
{"_id": "yEFhSBNM6jbpPhQ9g", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hN6Au2QdsD7DKMxcX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:09:44"}
{"_id": "gHMM34XXt5WFp7ars", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "x7ywok795wX79Khrn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:28"}
{"_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": "YidMq76pRKJbjzqXi", "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": "2020-10-27 17:30:15"}
{"_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": "icvQPqSz2QCrsZDry", "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/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies some l\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": "PYGSfGdqT8DwdXqTi", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:46:04"}
{"_id": "cD9KbqjXiwjbAmpE4", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | 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, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qyF5n6MYCn7GkNPjH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:46:42"}
{"_id": "cuknkhHkALoJDSX63", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cKZKEGY7uuTreyNuS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:41:09"}
{"_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": "GmCifTgzS3gnGKSM8", "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 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": "ZcNqj46PQnHefjoW8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:44:13"}
{"_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": "awH4ZH794q4mxaKe2", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  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": "gLdQef86itxwPSiYm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:33:49"}
{"_id": "J8wZG3cMRFWLnJaWt", "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  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : 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 and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "XwTjygSNnWjaDtSpx", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:05:13"}
{"_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": "LuNWCoKnrobkBwjcs", "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 : File | all y : File | 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\tall x : File | all 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": "vHEjZEzwthjwLXBPP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:44:34"}
{"_id": "iefmkZqchdqiumXLe", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk in link implies ((f not in Trash) and (lk 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": "gWQJGtdeEzGwpKkWR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:54:00"}
{"_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": "PdjGHXADptrdpbeuL", "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  all 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/* Some 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\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, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "rYZh5YiuZEGmJGowA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:31:59"}
{"_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": "g96at8zdh4SWHAdGb", "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 {\nno 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 : File | f in Protected implies 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": "jbzJ99xc9WZqAfSqN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 21:26:30"}
{"_id": "X8NoiG4d3L4ef2h26", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File, l, u : File | f -> l in link and f -> u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "AHoEm9vGDgfhbTTck", "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-10-22 10:43:32"}
{"_id": "NwLu3yzinbZb7SCaE", "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\ufffcno 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": "Syntax error at the ? character. HEX: \\u3f)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:46:37"}
{"_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": "dSXQTBnjTfwjzu5jd", "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 { t1->...->tn 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": "dicd5HashZXgCweL6", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:07:25"}
{"_id": "saChrgjuoNYhpZbLp", "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 { all f: File | not in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KiwYH9zkkwiM39eZz", "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-10-24 11:51:55"}
{"_id": "ffdjEyKRHzJyzkgff", "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 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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, y: File | x->y in link implies False\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HnaWfTB7DvcNjGMSM", "msg": "The name \"False\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:18:33"}
{"_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": "aq2cX9gzxxar8bN6Q", "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\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  some f : File | f in Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | some l : link | f->l \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7WQpwgz3NCoPLjtXj", "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": "2020-10-22 10:39:38"}
{"_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": "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": "doQuttWHXPyebJ49B", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "YsxsnTERpEYYDjaFE", "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-10-29 09:22:39"}
{"_id": "uSq5b5qTsnLY7kacN", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \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": "uE3zTwSfv7skZsR5b", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:23:22"}
{"_id": "Ch5WAgpktidfjuuiM", "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  \n  no 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": "sussrAFJA7reG2egz", "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-10-22 19:52:25"}
{"_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": "i8aNEtKPJNBpC8NXt", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\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\tall f:File | link.f in iden implies f in Trash\n}", "derivationOf": "evKCowLyimyKuZake", "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-6-14 22:34:51"}
{"_id": "SWh5p9vfMchKWxhbc", "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/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p 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": "j2s6pLoZBt9Kdwfhj", "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-10-22 10:38:27"}
{"_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": "CaSvZwETZa5KEQf8r", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \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": "EFo5TPYSFEzRWLygG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:08:10"}
{"_id": "JNAh9qBJCQYFiKGWo", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-10-22 10:19:59"}
{"_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": "5MvmjXyF7bhH2ejAB", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "TBP7dgs7ofFybA4uz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:29"}
{"_id": "DbEHYA8Dqo3L2CQCm", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tFile.link > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rm8xjZLa7MNgKqQJE", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:43:02"}
{"_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": "iDKMqtnjyADuirXzC", "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\t\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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "jT6DJiopHSuiEfeX5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:48:59"}
{"_id": "pDaTyWYY7XzPdvRHw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "f7ZwkYgSpibiFRBLu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:01:08"}
{"_id": "jYEoNZgQ3g9L8khuy", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some l : link | f->l in \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b4vz29qEeTSewkbiJ", "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": "2020-10-22 10:35:46"}
{"_id": "t6QSHgkysmicK4rai", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tEfZyqPqwPY89upsu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 09:40:48"}
{"_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": "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": "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": "RPK4vZxZG4mTSYvgu", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File |(f1->f2) in link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SGWyzhzoi97ozQJ76", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 04:50:05"}
{"_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": "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": "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": "B2XEikLqkrFKBMo3W", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies (all li : l.link | li in Trash))\n}", "derivationOf": "EGkjSvSYJkyAxvCNF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:27:17"}
{"_id": "ZcNqj46PQnHefjoW8", "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": "mLaYcWv49eBcd4toJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:42:35"}
{"_id": "gDnXZCSgpZbCjz5qg", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "QGKSeJWZXaDHFLctp", "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-10-28 21:34:37"}
{"_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": "ApdmBS5TR86Hgmsju", "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 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": "cGXdKa2A3uR5yMJRJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:34:06"}
{"_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": "E2mLn5JcLRhn8Qspo", "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 : 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": "JYumcaizKNKajP5je", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:25:58"}
{"_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": "iRSpAcQ9MK9FhuLJN", "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": "2020-10-22 10:19:39"}
{"_id": "5unvxCGeZ82Z4SqTo", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | all l : #(f.li)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yZP2A2egKuRbwJFMW", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:25:29"}
{"_id": "27Qd5KYZs59foFDAm", "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  all t : Trash | t not in File\n\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 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  all disj f1,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": "pheYL3LvJdAvKRuXd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 04:29:54"}
{"_id": "HYyZFfRhh3xmSh2Fx", "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": "SqbdPsiEGZZEgTB9n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:37:36"}
{"_id": "SfJkJRNcfqZxeGez4", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f->t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "gxjj6XHy78d43vjg7", "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-10-28 21:15:37"}
{"_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": "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": "rfmbJhoLpfsAp6Jcr", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (no fl in File)\n}", "derivationOf": "Ng6yTDhDmteF6oQBW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:37:33"}
{"_id": "KhRyi8Q9yDZGR7kSX", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File |  f1 not in Trash and f2 not in Trash implies f1->f2 in link\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Prk9ghQNWMWq97yWy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:26:21"}
{"_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": "RmnEQ5iS3JRSNCr2y", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "nwGYBmiS68wHTFqYb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:24:39"}
{"_id": "6qbkLxkZD8wkBy3dM", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 : File | no t: Trash | f1 in t or f1.link in 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": "CyhuJn5yZdoppDjby", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:32:18"}
{"_id": "dJkhxzTfcCbSTQ4aq", "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. */\none sig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f = 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": "mBNrQ7qsSHC4wjYLz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:48:28"}
{"_id": "tHn5XiR3GuPXLtesi", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in link implies f in Trash\n}", "derivationOf": "3rt7wG7wRBHAP5P2Q", "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-6-14 22:40:28"}
{"_id": "kb5EyBg24BvH9ZDcf", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  all t : File | t not in Trash and\n  \t\t\t\t Trash' = Trash + f\n  \t\t\t\t File' = File\n  \t\t\t\t Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9TTZLCFEZtHBj8M4f", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:34:29"}
{"_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": "M6o8rzHQxwAXFYRds", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "f5MqQyfd9eiLHae7Y", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-19 14:56:03"}
{"_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": "JYumcaizKNKajP5je", "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": "GmSJH98KrBvrxZTi9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:25:13"}
{"_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": "LzNysiL8W7xuNFpWN", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f2 in Trash) implies f1 in Trash\n}", "derivationOf": "AjPB2A4KQJqn9r8qE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:47:34"}
{"_id": "AJqgdJ8kvbs2o4su4", "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\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-11-24 22:52:18"}
{"_id": "qNCydgP5whjyncExT", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some 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": "7tuENG7eutpE45owc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:45:07"}
{"_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": "XWatBn9gg32Hem7zN", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,lkd : File| f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "z3P2CbLyyQBGXvdks", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:59:05"}
{"_id": "KY3gc4itCfszQfFYz", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "emYFXHHPQxrmiogY6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:23:14"}
{"_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": "5AGAQnRcM9gg2FeQN", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\t(all t,u : File | t->u not in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t(all t,u,x : File | t->u in link implies u->x 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": "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-10-27 19:48:59"}
{"_id": "dc47uEe5wobRqZYaD", "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 = Trash\n}\n\n/* 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": "pKtPSDNgaLbrMZKTm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:46:10"}
{"_id": "Ce2Jzc8hL2aK4i2fC", "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\tno File-Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 08:24:55"}
{"_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": "2Zmdab9S7yFwHta9j", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f1 and 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": "vaKNhGNyjFzAFY3xD", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 02:47:56"}
{"_id": "T6BQ75Jf3b7xXGD48", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies ( all li : l.link | li in Trash))\n\n}", "derivationOf": "mjgHwMLQQjwP6CPC7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:27:09"}
{"_id": "tFQcjqxq85EzZSzRt", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash implies u in Trash \n  \n}", "derivationOf": "e45YojnmrQwnKufj5", "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": {}, "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}]}}, "time": "2020-10-31 16:31:48"}
{"_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": "HJApoBwTzfth7NtDs", "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  \tTrash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 19:52:45"}
{"_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": "q4vQm4drKz4RJDhM2", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | 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, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | all lk : File | f->lk 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": "zHsoZMLX9W7NShdWj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:49:35"}
{"_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": "SFEFG7d329jfgumKm", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9XcrmpKSKw2e24E8w", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:39"}
{"_id": "c7kD9GJkMRRqbfnA7", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link and f1 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": "afx7LPecarTSWbikW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:25:45"}
{"_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": "GooqBDbGMnYEpLTpa", "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  (all t,u,x : File | t->u in link implies u->x not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e3ZLTk3ktfi9jmFZ6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:48:08"}
{"_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": "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": "QjQjuQsFBhB7R7BKD", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f : File  | f.link not in Trash and 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": "vMLLxzYCtPwmBL2tQ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:07:43"}
{"_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": "EW22nSZtonaXsaWXM", "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 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 | 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": "beh38qLdK5i8Qifcc", "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-10-29 09:37:02"}
{"_id": "3o2Dy5BFndAz28pAm", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "N2Myrrw7ca8dcJgzE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:07"}
{"_id": "db7AdSW7voAv93AaC", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | f->g in link and g->f in link implies f=g\n\n}\n\n/* There is no deleted link. */\npred inv7 {1\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HPFW9ZHzHZ8f2mnuE", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{Int}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-3 10:41:46"}
{"_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": "53iPeDoCWu8QyNjsg", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l' : l.link | l in Trash => l' in Trash \n}", "derivationOf": "k3purQSg2d7qhSdzL", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-30 17:27:16"}
{"_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": "pmSYCLBD6DPd6q53C", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "9E4Qkno9LtZbuqiAA", "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-10-22 10:44:31"}
{"_id": "Tfksw78pH4ohA8nEb", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "bea2vvbtdfjNAcfEq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-17 22:38:50"}
{"_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": "8dSPKpY39QAEJaMyR", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a9wy2TbptX5DTbmM5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:05:23"}
{"_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": "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": "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": "FPc87JoYNq3YYSeEE", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link 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.f in iden implies f in Trash\n}", "derivationOf": "d4yaDDmfcZJewT2wR", "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-6-14 22:37:37"}
{"_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": "2vK82ZT6BACbCPHeg", "cmd_i": 9, "code": "\nvar sig File {\n\tvar link : lone File\n}\nvar sig Trash in File {}\nvar sig Protected in File {}\n\n\npred prop1 {\n\tno (Trash + Protected)\n}\n\n\npred prop2 {\n\tno File and some File'\n}\n\n\npred prop3 {\n\talways some File\n}\n\n\npred prop4 {\n\teventually some Trash\n}\n\n\npred prop5 {\n  \n}\n\n\npred prop6 {\n\talways all f : Trash | always f in Trash\n}\n\n\npred prop7 {\n\teventually some Protected\n}\n\n\npred prop8 {\n\talways all f : link.File | eventually f in Trash \n}\n\n\npred prop9 {\n\talways no (Protected & Trash)\n}\n\n\npred prop10 {\n\talways Protected' = Protected\n}\n\n\npred prop11 {\n\talways (File - Protected) in Protected'\n}\n\n\npred prop12 {\n\t}\n\n\npred prop13 {\n\talways all f : Trash | once f not in Trash\n}\n\n\npred prop14 {\n    always no Protected & Trash & Protected'\n}\n\n\npred prop15 {\n\talways all f : File | eventually f in Trash\n}\n\n\npred prop16 {\n\talways all f : Protected | historically f in Protected\n}\n\n\npred prop17 {\n    always no File' & File & Trash \n}\n\n\npred prop18 {\n\tall f : Protected | always (eventually f in Trash => f not in Protected)\n}\n\n\npred prop19 {\n\talways all f : Protected | f in Protected until f in Trash\n}\n\n\npred prop20 {\n\talways all f : Trash | f in Trash since f not in Protected\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "The name \"inv1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-12-8 00:22:32"}
{"_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": "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": "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": "YsxsnTERpEYYDjaFE", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 implies f.link and f1.link not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "aEMa9szeZY7sJpQEE", "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-10-29 09:22:27"}
{"_id": "SdrtNiX2SNdZuzdss", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | l in 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": "awH4ZH794q4mxaKe2", "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-10-27 16:48:55"}
{"_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": "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": "Hqi7XgGcLx7AWyiYz", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "BzR27pNJiRwJmjJvf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:10"}
{"_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": "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": "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": "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": "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": "SRQ7J99jQRtPhXXaw", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash \n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ATZWnJjcfpT9CFT56", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 15:16:27"}
{"_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": "CtJNFqRwasfktef8P", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "GCBToeYT3kh7Dk3fJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:42"}
{"_id": "a2CHhbfagAnT5NvNQ", "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 { t 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": "sMC2Zc9nF9siTccC3", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:05:12"}
{"_id": "48Z4MAknAYbQ5Pwfo", "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  (all t,u : File | t->u in link implies (t not in Trash and u not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "PiHD22JmfLBAYgJDK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:54:17"}
{"_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": "ikcNKQ9vSiBuJsvej", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x4uZbXXpy5fK58Pvy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 17:59:49"}
{"_id": "JZySJ59Gz2srb2EDC", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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  \tall f:(File - Protected) | f in Trash\n}\n\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8dSPKpY39QAEJaMyR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:06:11"}
{"_id": "C4juei4hCsPsX3pHo", "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  all 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/* Some 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\t\n  \tall f1, f2 : File | f1.link = f2.link implies f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "PJkWYN8FHuX6axZ9S", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 15:08:52"}
{"_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": "HuRcyKhJb4Kth77fk", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Qv8Xh6jdB6HPS6bKe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 20:49:17"}
{"_id": "qZwPjGDk8nMywScaF", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  all f : File | f not in Trash\n  \n}\n\n/* 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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t -> u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "enuSBETTCieHqndFv", "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": {}, "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}]}}, "time": "2020-10-29 11:13:44"}
{"_id": "TqgE4TfZo25TDgYQs", "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": "2020-10-28 09:38:57"}
{"_id": "XCRpD8a3krhQpkZdM", "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 bruh : File | bruh 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": "TRcKJGmyzm7fbekBC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:14:36"}
{"_id": "FENWYF8LXSf5vBZ4q", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link implies f->u in Trash implies u in Trash\n  \n}", "derivationOf": "ZdRcGAxZwCsWyfais", "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-10-29 09:10:50"}
{"_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": "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": "iWw6fDi9oXEpbyQg5", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies no l.link\n}", "derivationOf": "QkujNJdk5u9bG7MCK", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:00:32"}
{"_id": "usJBabnxuoCXLh9AE", "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 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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, 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->y in Trash implies y in Trash \n}", "derivationOf": "Jid4JrguYex9YLxiB", "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-10-29 09:23:39"}
{"_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": "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": "qYfb9jh3C8gAMvszD", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x 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": "zzhnLASJ8nSrGQQ38", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:38:34"}
{"_id": "32HmJNx25Knsth5rT", "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(all file : File | file not in Trash)\n}\n\n/* All files are deleted. */\npred inv2 {\n\t(all file: File | file in Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t(some file : File | file in Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all file : File | file in Protectec implies file not in Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(all file : File | file not in Protected implies file in Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t(some file : File | some t,u : File | file->t in link and file->u in link implies t=u)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File |  t->u in link implies t not in Trash and u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\t(all t,y : File | t->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\t\n}", "derivationOf": "J3icigxw5GJ9LxJ7K", "msg": "The name \"Protectec\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:49:25"}
{"_id": "MZH2ojMXtNS46GXsL", "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": "2020-6-10 02:56:25"}
{"_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": "Eo7hjzZobK8vvfe3m", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | f->g in link and g->f in link implies f=g\n  \n}\n  \n/* There is no deleted link. */\npred inv7 { all l: link | no l 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": "YqKq2pvsWYKY4LWm2", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:35:11"}
{"_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": "eTFFEnvSgjXae4dFh", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f : File | f in Trash implies f not in link\n}\n\n/* There are no links. */\npred inv8 {\n  all 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": "gXJ3daRbjiKhXXPwz", "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-10-29 09:58:12"}
{"_id": "jeQmE4YHNrCvxjiZy", "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 [t : File] {\n\tt in File\n\tall t: no t 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": "bTnDsDsLZTtY7dFNv", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:32:53"}
{"_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": "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": "ZHnZx5yTxFAbb3PjD", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies f=k\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": "GMQqeqL4kA5epYMLz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 18:07:53"}
{"_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": "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": "vsxY5jaTx36Gzcfqz", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link implies f1 and f2 in Trash\n}", "derivationOf": "tNaYmmfaAiysa4QKH", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:01:22"}
{"_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": "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": "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": "c5S3Chky3uKTDuWfs", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZSeyJnXrGsbGdj9X5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:26:25"}
{"_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": "XRFqBmHWDQLooZqdg", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | all l : link | g->l in link and f->l in link implies f=g\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pM4AvQFKScqs32Dn4", "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": "2020-10-29 09:57:54"}
{"_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": "pfAm3DrJSJYkkHfxz", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | not (no f.link )\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "M9yhG3rDPKZKEnWYL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:06:25"}
{"_id": "jneByhqBbQqdHrSgR", "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 { all t1->...->tn 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": "ueyXbMTjcmEk2XAkk", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:01:29"}
{"_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": "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": "a9wy2TbptX5DTbmM5", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv5", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | 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 and f in Trash\n}\n\nrun inv5 for 3\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H3TY2MTqqRycjBBEE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:05:02"}
{"_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": "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": "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": "vANDnWvg6pzdKQkHp", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | l in Trash implies l.link in Trash)\n}", "derivationOf": "7DvaJQsToJh2AWWzy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:40:06"}
{"_id": "D6Xvscgy3ms8eNSxr", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | 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": "qFepdkitiFB3HyEjh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:48:57"}
{"_id": "8kPbXLDKHkcwpzZf7", "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\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  some f : File | f in Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n  all f : File | f not in Protected and f not in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f,t,u : File\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q9oXF4p8cP46s5Yw2", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:48:33"}
{"_id": "JGg2GAfYnhQ3Ahitd", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t in Trash or u in Trash implies t->u not in link)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "NDQmNKnLs9t6MGyKZ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:53:22"}
{"_id": "anyQq6gLA8hCcjDAq", "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 t:Trash | t not in File\n}\n\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": "r7WWmvWvmeEfRSgtZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:38:53"}
{"_id": "rkS8W9z9t9M6YwQ2P", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DR2x7BisDcbm6AJ62", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:50:16"}
{"_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": "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": "qbf9SrEDQSFY75YbD", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) >= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "7vmDMKN7Sqez4BECt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:01:24"}
{"_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": "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": "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": "q8eo9dG54hRoAF46f", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t in Trash or u in Trash implies t->u not in link)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "goRTk3KqTzkYZMWdm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:51:20"}
{"_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": "ao7jKE4vbsgQfRs96", "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  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": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:08:49"}
{"_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": "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": "hmBacxAHt5298M8pH", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n\tall (f1->f2):link | (f1 not in Trash) and (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": "G5XnyrfM6eNkRshRg", "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-10-29 02:56:03"}
{"_id": "r269hFBMYMRuFYxv4", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n  all f : File | f in Trash implies f not 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": "zCWKGbZSbNBvskGnX", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:36:27"}
{"_id": "9jqjNqfAAzGhXY7dt", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pRDMwG5xFjSNHrTuc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:32:19"}
{"_id": "ZRDMGzz4zyTtjf8cj", "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 t : Trash , f : File | t->f not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nh3YCGYKgCm4TRDeS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:45:11"}
{"_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": "CPFJkj427TZHcnHGu", "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": "2020-10-29 09:05:54"}
{"_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": "WT4JhZrx4SbKoysD3", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all f : File | (f = l) and (l in Trash))\n}", "derivationOf": "WDx2wyaGpqeHzHbix", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:13:20"}
{"_id": "XiJDij2bvy4A3kKxi", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash \n  \n}", "derivationOf": "WPSJcPcxvJD4vPyur", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-31 16:32:28"}
{"_id": "fFkpTZSBHT8ykmfQm", "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  all f : File | f not in Trash\n  \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 | p 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  all f : File | some f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n \n  \n}", "derivationOf": "cqy4XkQXA3pyKE2CW", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:54:18"}
{"_id": "zDZJWEXLmcZEtiZKa", "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  all t : Trash | t not in File\n\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 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  all disj f1,f2 : File | some (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": "27Qd5KYZs59foFDAm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:30:14"}
{"_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": "u9HAHHm389FuiqEga", "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  \n  all t : Trash | t not in File\n\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 | p  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": "NeWEhnNhvXX66JeX2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:34:36"}
{"_id": "dzWmy2KqDky8uDPcp", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "3hL5LFmdqws9LgdJy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:34"}
{"_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": "hFkpMjLqoMkhuYHcF", "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\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  some f : File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f not in Protected implies f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xf4Qt5oELFpMcs5Y8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:39:19"}
{"_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": "eyvLdQyKgvhxFaiqM", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tone (File.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ziAFn7jW5drGMFLin", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:23:58"}
{"_id": "JSdsZYnYP5JwfggR9", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link | l in Trash => (all l1 : l.link | l1 in Trash)\n}", "derivationOf": "h2iMnQ9xXinC3adcr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:47:51"}
{"_id": "yPhbE6ycaMA8ARZjK", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8tFp3LccL8At9z2b2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:50:33"}
{"_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": "xEXAKgGJizr6JWtsn", "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  \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": "QoJc7nYt5rcQ42n5q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:31:36"}
{"_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": "zpqhBoY67oPCRnCq4", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | 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": "HDpufzSDRYuT5ENTt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:00:04"}
{"_id": "Bd9xuQcrvhiSiJ2nz", "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  all 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/* Some 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\tall f1,  f2: File | f1 == f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "egNA8FijDT4Mc5C5n", "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": "2020-10-27 13:53:13"}
{"_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": "bkLhBRjYaJa4Nc5vQ", "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": "2020-10-22 10:18:35"}
{"_id": "T3TbBzWNYdj7Pn2Zg", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | no f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Gx9uQzAo8MyCAs7Kb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 20:59:05"}
{"_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": "SAKCRS7aRQ4jewTDC", "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 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": "sN8rREwJeBXYp7c2m", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:45:33"}
{"_id": "zqAktmMuWYgwS4Mzu", "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 {\nall Trash :File|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": "D97xAckzKTLiS738x", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:36:38"}
{"_id": "Rv5Zv7nnAb4hPhrnq", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  f not in Trash\n  Trash' = Trash + f\n  File' = File\n  Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "msg": "The name \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:28:27"}
{"_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": "Zmy4uatcZHWjYRmcf", "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  \n  \n  no Trash\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  Trash = File \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x 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": "WGYDETQay6YHJ8r8Q", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:41:29"}
{"_id": "HnaWfTB7DvcNjGMSM", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, 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": "bv3wBfFsNsM4Sb3xc", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:17:26"}
{"_id": "FgaGJquRtzp7vHd3H", "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  all 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/* Some 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\tall f1,  f2: File | f1 = f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "Bd9xuQcrvhiSiJ2nz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:53:18"}
{"_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": "9jb88ED7hDiXYgHAr", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f->Link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "uNf3g8J6jTG7rBFcA", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:04:32"}
{"_id": "wmbWpdiXzbNnLKZiy", "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 [f : File] {\n  f in Protected\n  Trash' = Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pz9GXFw7uDsjnyZkc", "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/inv4.\nThe parameters are\n  f: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 23:37: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": "uRy8qayYSLGGJmJQt", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all li : l.links | li in Trash)", "derivationOf": "wTpFamygs8jZH7SHN", "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-10-27 18:25:14"}
{"_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": "6JD2XmYyvHroR2F3K", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "AztMfKwvryzyPSYB5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:09:07"}
{"_id": "SL74Lz8saCLBymnRJ", "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\tno (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sqp4at8PTxtCXYBXP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:08:40"}
{"_id": "WKdMwWyuH9jYowp9i", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  all t : Trash | Trash = empty\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HJDf9Q29NRt99QFmz", "msg": "The name \"empty\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:32:58"}
{"_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": "7GAqowkZjS9nA6uAP", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "AJSRySpgaESQ6Ymsd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:09:59"}
{"_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": "WXNkEeAmNumhCRCyH", "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  all f1,f2,f3 : File | f1 -> f2 in File and f1 -> f3 in File implies f2 = f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gzPY9YzvQk96pRvkh", "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-10-28 21:03:28"}
{"_id": "Z7Zg2mF6LHto5vfwP", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 -> f2 in link | no t: Trash | f2 in 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": "432GxkcP4tgrhPFTE", "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-2-17 14:30:44"}
{"_id": "PRWu3uAFve4hRqHu5", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no links 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": "Xk9Cgizz7snDBsZCT", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-24 16:08:41"}
{"_id": "bv3wBfFsNsM4Sb3xc", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, 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": "xuwF5tDRfexHTQHCL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:16:56"}
{"_id": "imuXzEGkAGQkPR5ve", "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": "T5dF8xkSRa8eoQ5bf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:40"}
{"_id": "2uWyvxZJvBR6RcJMQ", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File , y : File , 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 : Trash | x->y in link\n}", "derivationOf": "pYPBMfmRqqKwqZFmN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:51:34"}
{"_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": "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": "shiFR5T3gbgund9R7", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B3ACQ7LDk3PMGPedx", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:11:06"}
{"_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": "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": "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": "MqCHhMmdQxBcePGAa", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies f in Trash)\n\n}", "derivationOf": "HsNvGu82oKk4RXJhe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:45:49"}
{"_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": "ksJfnHLwmeyp2AHvn", "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\n/* All files are deleted. */\npred inv2 {\n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gRKETnEks4oATHMzd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-2 03:49:42"}
{"_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": "mnDkFBL4pjj5pLSYf", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | ~link.f 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": "hM2MfkoXoERLbRW7w", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:29:08"}
{"_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": "wKhfKv4zaTkna9FFH", "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\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": "Sm3BxFaKfETZXjWGY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:32"}
{"_id": "YmMJRfBZMEAectcEh", "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  no Trash\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  Trash = File \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x 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": "qc8Lege3J82Eii2nY", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:41:07"}
{"_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": "PHx7TQTvvsnmPn33j", "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": "G9FZCQ62jvtGSuEAn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:11:42"}
{"_id": "gRKETnEks4oATHMzd", "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\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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-11-2 03:49:20"}
{"_id": "id4ikdCoSDfRuHQMA", "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/* All files are deleted. */\npred inv2 [t : File] { all t 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": "JNLm5DEhXqShjP8aW", "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-10-25 12:34:11"}
{"_id": "xmMSkfLBZjvMfWYcs", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \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": "pWuYy6mMKvHT9xoh5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:26:14"}
{"_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": "YgrdW4z9jiy9rpKAh", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f1 : File | f->f1 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": "BBmqctkffmHRgtKir", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:59:33"}
{"_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": "xSWKuMXX74RGDceyY", "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\n/* All files are deleted. */\npred inv2 {\n  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tall 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": "xEXAKgGJizr6JWtsn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-7 17:32:02"}
{"_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": "mQhfWqEjNRxrXN5am", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "64Dn8Xj2tc4Q4mamf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:23"}
{"_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": "hkYm65jSF426sPbuq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | some 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": "8xC9NLmiQE5GYCT3n", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:06:38"}
{"_id": "RHd9J5ABz4h5iaNix", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "HS6g78LgBrmjuGCF9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:33"}
{"_id": "iZjMXSkfQPqymQXhF", "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\t\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": "aKtCcZ63JTzJYbqvo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:47:17"}
{"_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": "zyoysjkmXr7Q9Ddz4", "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 { t1->...->tn 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": "saChrgjuoNYhpZbLp", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-24 12:30:19"}
{"_id": "6Jvth873TQmJSwEJi", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R5i7u8kZzEppbL3x4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:51:12"}
{"_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": "BWJ7Ncnmsmt2MrtgG", "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\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": "Hb4CHa3en52yhc9vz", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:23:10"}
{"_id": "sirjaAd6ciFWbbCKA", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies (all li : l.link | li in Trash))\n}", "derivationOf": "9SjXPioGYdwRiQZep", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:25:56"}
{"_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": "gXJ3daRbjiKhXXPwz", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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/* There are no links. */\npred inv8 {\n  all 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": "LB7Y3ZfKgEHyAdpeJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:55:02"}
{"_id": "vCsFiEQyKx9zsG29x", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\t#(File.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DbEHYA8Dqo3L2CQCm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:43:12"}
{"_id": "K85tPQXkfRSE26tZQ", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RjAKzxjrCJ7vC375S", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-17 22:32:20"}
{"_id": "jmamnokz88QRb39RY", "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/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ej8aRhuBmwp7GCuSC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:22:59"}
{"_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": "W7RxXNguyaBcPYyok", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all f : File | (f == l) and (l in Trash))\n}", "derivationOf": "ZbRJBkfogyEw52GQA", "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": "2020-10-27 18:11:48"}
{"_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": "gjSeg7B7Api6CSdZd", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash \n  \n}", "derivationOf": "mTettH6CytEkYuTYt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-31 16:32:08"}
{"_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": "HTPMtLHKb4ScGf4A9", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JK6DZiiKqf6FZJuDG", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:52:45"}
{"_id": "A8qYdjtK3ipxKQPou", "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/* 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": "mX7g44aQPAbPYqevw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:43:09"}
{"_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": "nXnhkYwtLBX99Hkjy", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jFbDYyoQ278xbH7oZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:54:48"}
{"_id": "zYhL6B4HkvJiRWoxd", "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": "9dv99hvmSnpSLvrLA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:26:04"}
{"_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": "zzMLdXGkFJxcW2mHf", "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\n  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "pDo4KkruBqfhGYkqG", "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-10-29 09:26:09"}
{"_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": "Y3LoX5PYxv889JHvE", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x -> y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5Qd7XNBSmy6FZv6j3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:37"}
{"_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": "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": "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": "xKE49XPQotvJFFg8W", "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 {\nno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nall f : File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EieBrnGosAibtNYgh", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 21:21:40"}
{"_id": "gaMh43GqpQ9rDT7pq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "QoguFK6pBCGvia2NN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37: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": "3LunemBtQnPHRk2zD", "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  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "j5LGK332zys2zpCH2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:10:26"}
{"_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": "YLjCsMwtK4enCFZNR", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "7txWzc9AHZ4NCB49E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:22"}
{"_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": "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": "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": "HDpufzSDRYuT5ENTt", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all 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": "ydtWKd8SpYjd8Nqz6", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:59:47"}
{"_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": "JFbQh7fC268kz2ZWX", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies (all l1 : l | l1 in Trash)\n}", "derivationOf": "zoMBM7GXpSqoSStxq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:14:51"}
{"_id": "r2zuoDyk7bqAsPCJs", "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": "jmamnokz88QRb39RY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:23:43"}
{"_id": "wGfEh9tyTDodEMXsy", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l 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": "LTKThmjfsbPxJr49k", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 17:24:50"}
{"_id": "k3Y9KELgDBHEQgXDT", "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  \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": "wfvZ3zzvGynRJm39c", "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-10-28 19:24:47"}
{"_id": "oAx3vthxSoZNE9NYx", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1: File | f->f1 in link implies f1 not in Trash\n}\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "KWvFTa8ZpHAap8jXE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:26:52"}
{"_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": "SWmCYii3uqzvMxCSr", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n\tall l : File.link | no l  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rSXscXKN3MiYKw2hW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 05:18:03"}
{"_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": "MDgS2DXcorkrEGvft", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dc47uEe5wobRqZYaD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:46:18"}
{"_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": "ZTsRLBFJiMFwgpKiu", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | Trash(f)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zaMChHALGuKhy9Jpu", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:28:42"}
{"_id": "afx7LPecarTSWbikW", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link implies f1 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": "bTXSdtY52DDbEWXAD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:25:34"}
{"_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": "t8uvRZx6P8RYCZY4n", "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\n/* All files are deleted. */\npred inv2 {\n\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": "2cqzi5DpeJLppt6WR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 15:59:05"}
{"_id": "CRkb9vvAZBQovxX84", "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 and f not in Trash\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\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zdDqnTPemRR2w9pix", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 23:41:48"}
{"_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": "ckhbFi2PXgetBdFx4", "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\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  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 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": "hFkpMjLqoMkhuYHcF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:40:06"}
{"_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": "fsf9ZKnrMFTWjgGmA", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh 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": "XCRpD8a3krhQpkZdM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:15:11"}
{"_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": "7DvaJQsToJh2AWWzy", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tinv4[]\n    all f : File | (all l : f.link | l in Trash implies l.link in Trash)\n}", "derivationOf": "hhhNtmdFWFzFXQ2wc", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:39:44"}
{"_id": "BK9Pz5FBTf7akPeBf", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f':(File - f) | f.link in f'.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JD4Kjyxuwgx3zJFp7", "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-11-17 22:21:28"}
{"_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": "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": "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": "haRXrSfn3K936uqk4", "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/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected and 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": "25Sp3RKqXPdtHNnYB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:42:45"}
{"_id": "JgxAGN4gie9wXd4iv", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gDkgDwRCnssEMptgj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:25:15"}
{"_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": "5cdjhWGQyhbhXrBnQ", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | (f1->f2 in link and f1 in Trash) implies f2 in Trash\n}", "derivationOf": "LzNysiL8W7xuNFpWN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:49:07"}
{"_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": "jFbDYyoQ278xbH7oZ", "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": "2020-10-28 17:53:25"}
{"_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": "vMLLxzYCtPwmBL2tQ", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  all f : File  | f.link not in Trash\n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4Le8WWLbc3uGEWK8w", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:00:27"}
{"_id": "TuwYLRu2kEqTjArYZ", "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 {t 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": "9WDjYfzm4o7MkfE3W", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 19:07:57"}
{"_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": "DJFZjv3g4tAmPi6nY", "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": "hwfqCEPSz8zxjqDxY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:00:18"}
{"_id": "ZGBMKF2xqoKmwskh8", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies some l\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": "6byfgJj2riSoqWarS", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:44:02"}
{"_id": "fXLpuYy4ragYowv47", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies (f1 in File-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": "x5YXauuLJdybc7xR5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 02:52:40"}
{"_id": "j2Da5pcFD3KmFpRME", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-12-2 11:09:45"}
{"_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": "aKtCcZ63JTzJYbqvo", "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\t\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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8kmAhcPDkD6hMTR3R", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:46:42"}
{"_id": "3g7zXfaNThu6s9acc", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t (~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": "qtQYeq86TNYwQSZjr", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:13: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": "ibRbfuuSZ2XKtygvA", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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:Files | 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": "bufe49KXHCrtNpjz7", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 02:39:57"}
{"_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": "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": "5wR35fLs8QdLS4QbL", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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": "Y8qHb2swZxYx5JkBP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:56:05"}
{"_id": "2nTFTW26u5WZTHEGm", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | one f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EYhjWu5sKyLP7hgFJ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:06:20"}
{"_id": "KY2HFY8To5PNT3jYA", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "gDnXZCSgpZbCjz5qg", "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": "2020-10-28 21:41:34"}
{"_id": "MLfdsTNNP4iHN9DTp", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not 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": "kx7kaXoftvPM38Qxa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:41:17"}
{"_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": "57AfDSwERYdrMbpsE", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "CcRmGcCYErT2LnQuC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:51"}
{"_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": "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": "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": "Rz3AwKnLTr33vtKfT", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QN32PE9CbZAZR9vFt", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:26:16"}
{"_id": "BzThe3FmzamAepbBq", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QQ9gLEPMypa29KvHF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:26:34"}
{"_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": "agRiRf9vLk7vHNWLZ", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f,g : File | all l,t : link | f->l->g in File and f->t->g in File implies l=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": "riSYmK9wvYeip6Ds9", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File->this/File}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:10:38"}
{"_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": "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": "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": "bgL2owkx89GeoXC6J", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "KaNkQuXC7etYvxLWw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:20:58"}
{"_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": "GmSJH98KrBvrxZTi9", "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": "BwYPwpapZevicYbrM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:25:05"}
{"_id": "Cr7buYJuuZpEsEZvZ", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File, l,t: link | f->l in link and f->t in link implies l=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": "A88HEmZP6emXi8zoN", "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": "2020-10-29 10:21:55"}
{"_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": "BFuGrxFo8dF9mzcb7", "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\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": "uqc8EB64NcB67oaCJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:59"}
{"_id": "MMyhTnufr92Y5wA3B", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tc7EbXzCYjXPqbGKs", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:51:22"}
{"_id": "HrRvkaD3DxE2RigX4", "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": "SAKCRS7aRQ4jewTDC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:45:44"}
{"_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": "ygMzaCt3DjCEJndpR", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies (all f :File| f in Trash))\n\n}", "derivationOf": "Y3ayePY5TgXYk4wMp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:37:09"}
{"_id": "hhGTgDCaD4EN8Tiov", "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 \t\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\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File, t,u : File  |f->t in file and f->u in file implies t=u\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fTTqiMccFSkkWKZXM", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:32:29"}
{"_id": "6EPoPm5KTGnuESSwS", "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  \tno 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": "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-10-22 10:35:15"}
{"_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": "t7EqiM8GNkn5xb827", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : link | l in Trash\n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7WZMqHN4K8Et4eYoc", "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": "2021-1-12 05:01:54"}
{"_id": "LB7Y3ZfKgEHyAdpeJ", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all 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": "nbLma698xgQg4QuJT", "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-10-29 09:54:40"}
{"_id": "jyWA7p3oXgL4AQWJx", "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 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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1,f2:File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "CYBpgGgpJip9LDoyN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:56:46"}
{"_id": "5doPnTm9FpfdCvTfT", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l1 : l.link | l1 in Trash => l in Trash \n}", "derivationOf": "3JTLGaNrkWxRv6PDS", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:27:55"}
{"_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": "ATZWnJjcfpT9CFT56", "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\n/* All files are deleted. */\npred inv2 {\nFile 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": "6jkqr7iN7Hd6cAAse", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 15:15:02"}
{"_id": "NXmLGcDEEQm5c4GYz", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link and lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "mRKJY23TbbppWYunb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 14:19:37"}
{"_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": "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": "PJkWYN8FHuX6axZ9S", "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  all 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/* Some 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\t\n  \tall f1, f2 : File | f1.link = f2.link implies f1 = f2 and no f1.link = f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "5FrKrmGhL9JAdvwgA", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 15:08:38"}
{"_id": "FcZjScvzWZkGGgaqZ", "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  no f: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": "Fx2F2xmeaekX2t78x", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:25:19"}
{"_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": "fqugDxcFp4LDPXaEu", "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\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\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "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-10-22 10:41:20"}
{"_id": "KKWDoHTDhtKteqPhY", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies l.link in Trash\n}", "derivationOf": "iWw6fDi9oXEpbyQg5", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:09:45"}
{"_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": "pA6r7YXW8d7udv5xD", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gKyjRWxZB7GJ4RB8n", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:24:20"}
{"_id": "WXW2KpHArdX6Hw6ZL", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "iBcqiTjtkY3RRQRQL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:07:16"}
{"_id": "Kq3GjcupfaaBLBk7f", "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: File, y, z: File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File, y: File | x->y in link implies y not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall x: File, 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": "usJBabnxuoCXLh9AE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:24:57"}
{"_id": "LTKThmjfsbPxJr49k", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n  all f : File  | f.link not in Trash \n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A9pKc6gy2uMBk53e8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:22:25"}
{"_id": "Km72DdbQmwNZCagTs", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.links | f1 in Trash implies (no f1 in File)\n}", "derivationOf": "2HxAy7WzNpeXBHE6z", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:36:14"}
{"_id": "FHH8wjHbmEKrJcpZa", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link.f in iden implies f in Trash\n}", "derivationOf": "kYCd9nPa7QrFSKYtS", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:39:44"}
{"_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": "mmr2bAg9Dpus6spc9", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\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 | all lkd : File | f->lkd 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": "4ZpDDbewEdH6rGLpY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:59:24"}
{"_id": "AhCn6zFskJAH6ANMo", "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": "2020-10-27 23:19:45"}
{"_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": "g3YusBrmoK7FTwwcr", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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": "JgxAGN4gie9wXd4iv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:25:20"}
{"_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": "A6NyLuWgTyvFMybKC", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t in Trash and u in Trash implies t->u 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": "bbyMEG9L5kXyj2aH8", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:40:32"}
{"_id": "ZnHmaG8Xmi4LNw8T4", "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 t : Trash | no t \n\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\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": "T8LS8j58dbD63SHaL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:55:15"}
{"_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": "YYp8mJeHdYPogXJyv", "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 t : Trash | no t \n\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": "os3MLnkZJrfisPsbg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:41:05"}
{"_id": "oMj7Hgfrju78DNokN", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall link.File\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rjWps3uCgbB7pEvdf", "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-6-14 22:33:24"}
{"_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": "hdCtEuRd75jaX7gxP", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File, l,t: link | f->l in link and f->t in link implies l=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": "Gg2coEPmzn7KL55PC", "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": "2020-10-29 10:05:14"}
{"_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": "gR2F9Gdwt8ueXSFBi", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "2i9pvTNLyp9CKfyST", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:52"}
{"_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": "PRhu5XPahTZrZnxwj", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 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": "5NvvD5ygAvKZZAiYj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:05:42"}
{"_id": "GSuiGR8grEuSsM37w", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GnwtqR6pbjkEcqgcC", "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-10-27 19:30:20"}
{"_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": "P6avXw4e7uzaujrdj", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link in Trash and f not in Protected) implies f in Trash\n}", "derivationOf": "QP2Xvboxt2JtP5gdo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:50:54"}
{"_id": "cSnaSterNgDDTiLZe", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "eRuPDPnigvKYiwgLw", "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-10-29 09:07:20"}
{"_id": "4EnXez5QmwEaF24DR", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oscWeTBFWje8g8XQA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:34"}
{"_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": "HeLgeXXpTpwmjt4B9", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hD8fjQu6s5HE8zozp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:27:56"}
{"_id": "MdEfHnqW8DDT4HLAm", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D6Xvscgy3ms8eNSxr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:49:09"}
{"_id": "AaencYpyF7yjQHE69", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and l in Trash) implies f in Trash\n}", "derivationOf": "BxpdSvkixfxryg4ys", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 18:16:32"}
{"_id": "Y7Rwmfk6QMTSf9eCs", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "FxadJp7wL7Ct4FfLm", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:24:13"}
{"_id": "qdM7ffEbX325aaZrB", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "3KnxHk8D3J7JQDtHy", "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-10-22 10:37:33"}
{"_id": "ExrZS4LCgx6yJShLu", "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\tno File-Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ce2Jzc8hL2aK4i2fC", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 08:24:59"}
{"_id": "expfMcFH3yYYE678E", "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-10-28 16:21:44"}
{"_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": "q9oXF4p8cP46s5Yw2", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n  all f : File | f not in Protected and f not in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f,t,u : File\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hJ9xmpT9rmrcpCAzb", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:48:27"}
{"_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": "Nh4shzfcHyjM6B6K3", "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\tone 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": "7uMMKNa56LuKcL7sF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:34:38"}
{"_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": "dkZ3ttnkp3BjDGCc5", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Deleted\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Sz87nXt82fsh2eibj", "msg": "The name \"Deleted\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:25:57"}
{"_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": "WYCNGsczhEAN8sXFj", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "TwXenQ3Sq7rZcwCsL", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:23:56"}
{"_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": "nPB4LrTrTABoPyauJ", "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 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": "HdtBvv4GHYYmWdN4D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:38:27"}
{"_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": "XtSp9kisLsF948rBK", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2 : File |\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2zvRHkuTmydjxyHfG", "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-10-28 21:01:28"}
{"_id": "TpxSdCjtXp5TA5CKD", "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/* 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": "JYqwPZ7kzsiMvuyGN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:42"}
{"_id": "bbyMEG9L5kXyj2aH8", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u 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": "53bPRBncu8Agt3j4G", "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-10-27 19:40:03"}
{"_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": "YaufvgcYukiYPggDr", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \t\n\tall l : File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n\tall f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "tvgKribHcQxqF4War", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:12:27"}
{"_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": "oLTWupsGbt2dko4xN", "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 p : Protected | p 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": "tCL9YmNnSBGFtGAhF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:22:32"}
{"_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": "z8osfJiLe3Gz43EcA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "nuFHyQ2LM8y3rdweE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:43"}
{"_id": "i2ywd5BaPq2SbjPRS", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2 : File | f1->f2 in link implies f1 in Trash and f2 in Trash\n}", "derivationOf": "vsxY5jaTx36Gzcfqz", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:01:36"}
{"_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": "NnLyAXZ5np56gytqq", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lkd not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "JCyubyfvhZRAY8Y9r", "msg": "The name \"lkd\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:09:22"}
{"_id": "MTCwymgN5Xjt5LXxk", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  univ = univ\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NmTfASD8D3SWSeNC4", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {univ}\nRight type = {univ}", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:23:58"}
{"_id": "m3jESCrzQMjRMoPqj", "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": "xGF6E2LfnbdshLKqC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:34:58"}
{"_id": "MQABv4byXKmxXCGjC", "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 x : x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HZ36qgPtegXxeTfgj", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:31:47"}
{"_id": "gmrCu7KTRhnejvQsb", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash implies u in Trash \n  \n}", "derivationOf": "rcQ5EvdX3PBmYchKo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-31 16:32:55"}
{"_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": "qepsoFPDCNudGjh9z", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n  all f : File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  all f:File|(all l :f.link | no l.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "xWRCDX5z64MwkPi9a", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:31:35"}
{"_id": "kn2yAR9oE467xXyRw", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t -> u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "QLbaYX2vbkMQB68Yx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:49:30"}
{"_id": "Y3ayePY5TgXYk4wMp", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | l in Trash implies (all f :File| f in Trash)\n\n}", "derivationOf": "nKSaS5pTbzB9kADdB", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 18:37:02"}
{"_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": "EuD57iHsechWbt2HB", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6DLjqtJvGM8cH6Wa8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:03:33"}
{"_id": "GnwtqR6pbjkEcqgcC", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EFLbYbz2ErBrFoKzT", "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-10-27 19:29:19"}
{"_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": "nzyZ7toobjWtFidts", "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": "Ek3aioZb4ABFwgvdA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:24:24"}
{"_id": "TAi9Ni6s885FNev9y", "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\tno link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kn6qAepyCMzaqRv7G", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-6-15 19:25:17"}
{"_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": "C3Bkx9qSR9eEu9Gbr", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "4Szh8fyatnHvCm6qJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:49:05"}
{"_id": "mwDwvtbsAiMptNxTd", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "TWWu3xa8dLrumYqC4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:21"}
{"_id": "z3P2CbLyyQBGXvdks", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "8asCKv7wL4sje3Dw4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:58:32"}
{"_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": "JYqwPZ7kzsiMvuyGN", "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/* 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": "rMBdZ7Gt8TsdBmgJL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:30"}
{"_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": "NiqDqBEXLjYttzZAo", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | f.l in f)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cvxB5CRG4nfKkXsDh", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:58:21"}
{"_id": "HdtBvv4GHYYmWdN4D", "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 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\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nfW7hgJtRFR3Ez7dW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:38:03"}
{"_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": "ddJkXfiCe2xsq5SQG", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | some f.link implies link.f in Trash\n}", "derivationOf": "6Jvth873TQmJSwEJi", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:51:37"}
{"_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": "2BFNgmyHZ7F3KuC4r", "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": "bA9sFjwpZwJujoWWg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:45:29"}
{"_id": "4RZ93Mjv6zQRbRczk", "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  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EWdXp8FnqFrs8aXwT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 04:36:36"}
{"_id": "NWEhtYHBPwy4ALBaE", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dJkhxzTfcCbSTQ4aq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:48:33"}
{"_id": "39TPKYQ5Fb6ixnQnW", "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 {\nall Trash :File|Trash 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": "9xJZiXdRyMWeP4axx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 13:38:53"}
{"_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": "MzTWXfmKb2gDd6wQb", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\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": "ZHnZx5yTxFAbb3PjD", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:11:21"}
{"_id": "o9bBTqGiwRoGgyQe3", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t : File| some x,u : File | t->u in link and t->x not in link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies )\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2MvJptAK9uz2dm69x", "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-10-27 19:34:18"}
{"_id": "BwYPwpapZevicYbrM", "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": "24sW6axeL6PhwkzF7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:24:16"}
{"_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": "Y6JkrtpDwLkxzBXgY", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SQBvSuRgiitbXHg7m", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:19:24"}
{"_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": "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": "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": "qyhpCasJTDc7mBbMF", "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  \n  \n  no Trash\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  Trash = File \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x in Trash}\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  asf \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zmy4uatcZHWjYRmcf", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:41:37"}
{"_id": "6kCg6jqDZfDvRpg8s", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "LGHXqBdCmFQYjt4gu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:17"}
{"_id": "WkTJHY8aFtvoqLqTF", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link 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.f in iden implies f in Trash\n}", "derivationOf": "FPc87JoYNq3YYSeEE", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:37:56"}
{"_id": "DBaM32XmdJ3SHtD4b", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "kkeKHee4gzYjmo5Kj", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:22:55"}
{"_id": "kTBsmoJgJ6pqTKK9P", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | (f.link) 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": "KiXhcoqnYczg3XvCw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:27:14"}
{"_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": "32ggnQHXrGJ9Rfpea", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not int 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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Eqt24jyGRMicChk5e", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:57:44"}
{"_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": "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": "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": "xGgna7bLZCXkF32Ep", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f1:(File - f) | f.link not in f1.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": "2mFizQySzjCXwzGNF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:15:17"}
{"_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": "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": "YAk4yzi6WSXQxCrWQ", "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/* 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\t\n  all p : Protected | p 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": "QF9a7x6uuqx8kx2hB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:30:57"}
{"_id": "i8YehR6aoMihKgbSR", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | (fl in Trash implies (no fl in File))\n}", "derivationOf": "4nYugXgWZ5yNQg39B", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:38:24"}
{"_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": "Rsv9tTAJ8Fks5utPn", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash \n}", "derivationOf": "rfmbJhoLpfsAp6Jcr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:37:55"}
{"_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": "qc8Lege3J82Eii2nY", "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  no Trash\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  some x : File | x 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": "qYfb9jh3C8gAMvszD", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:39:39"}
{"_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": "xZkhqikoTEsNhE5sd", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QqnPoooQkqyBfEPsg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:23:33"}
{"_id": "x7ywok795wX79Khrn", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies x not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "D6tPSSxocheKursRY", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21: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": "atCyHzhMvaxPLf8HN", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some 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": "HTPMtLHKb4ScGf4A9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:54:30"}
{"_id": "pM5B8aQx6jktTzgvp", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File | all y : File | all 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": "e2QqKTdjE98tCQ3uE", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:46:53"}
{"_id": "gJo9WQzgGjnwbycup", "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\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 00:44:36"}
{"_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": "8GhGabSqDQAhqLPSu", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv9", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link != f1.link\n}\n\nrun inv9 for 2\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KK7CWxAs27FH5hKLD", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:18:55"}
{"_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": "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": "K5KHi9bJrhKLaSo2h", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t/=u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \tall f,u : File |\n}", "derivationOf": "2oxpEpdnjhTPW5Wu4", "msg": "There are 1 possible tokens that can appear here:\nNAME", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:29:18"}
{"_id": "gRcYspy8z923dd6bs", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n     all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7WRQ2fHGBW3iHJbPy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:49:17"}
{"_id": "hq6wTkQyRAhc3o9Dk", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies ( all li : l.links | li in Trash )\n}", "derivationOf": "TasfL9JwRkKxHMHBE", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 18:20:05"}
{"_id": "vEyNANKyhCQRLz86a", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies ( l.link in Trash )", "derivationOf": "S7QDC5KHi43yzEvAz", "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-10-27 18:23:35"}
{"_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": "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": "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": "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": "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": "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": "479gW2dhxkdt7x5Lk", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sDLK7uBCbgZon3znd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:20:16"}
{"_id": "BBmqctkffmHRgtKir", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some l : f.link | f->l 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": "YbSD7wiyubxicHsNw", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 16:59:03"}
{"_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": "3EG7YJRTxXyJMf87J", "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": "cTNJxyWmfgzBt4XXA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:20:34"}
{"_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": "KhkGWszQWTsur72Ni", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(link.f) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5cEQw3EgQdKnvqoFh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:34:15"}
{"_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": "fP7idGwv8q7ccPuwF", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "cJwCNBZMnr3P8zqvC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:24:47"}
{"_id": "5uz53HDnePwxL8uBd", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "zFgzdZnJmAvrtTcoe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:24:58"}
{"_id": "H7E2epNYcFxoM4c6m", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "92m3QQXtyNR9y7FBE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:26:35"}
{"_id": "Cx9MGjAzxpXC7q74G", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "3o2Dy5BFndAz28pAm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:09"}
{"_id": "FjXLfN3axgqnQnXT5", "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": "zknkDmQBZ5s3xHxhy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:26:05"}
{"_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": "j34qgCw4txXy5apfn", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.link | f1 in Trash \n}", "derivationOf": "GFJPxBccYkMmmPFgF", "msg": "The name \"f1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:36:32"}
{"_id": "Dehs2hawjZKoSwTNu", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "zAY4FTqhYea2CtkJJ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:24:05"}
{"_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": "iJF39hAm2RYYD9HPW", "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\tno Trash\n}\n\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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BnXaDoZmBwt9gjMR7", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:34:27"}
{"_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": "Cb7hTYyjbdi6up5Ld", "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  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  some f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "Fkri2azgbHb7NxR9r", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:08:34"}
{"_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": "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": "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": "z25sCQNbjxCcvcBss", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \n    \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : not Prepared | 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": "hCPyRAeMrmLjPNkX8", "msg": "The name \"Prepared\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:22:29"}
{"_id": "cqy4XkQXA3pyKE2CW", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "DLMkiEaFMgsoygcwj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:48:38"}
{"_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": "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": "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": "hN6Au2QdsD7DKMxcX", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | # (l) < 2 \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2MeYyDkybmyGFDxca", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 21:08:47"}
{"_id": "6q7MqhQANvAtNX77Z", "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 | no f 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": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-7 17:30:57"}
{"_id": "2oxpEpdnjhTPW5Wu4", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File  | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t!=u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \tall f,u : File |\n}", "derivationOf": "9pS6SryPZXrDzX2jk", "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-10-28 21:28:55"}
{"_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": "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": "NAzd8SPdhaw6yhWZn", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,x:File | f->x in Trash implies x in Trash\n\n}", "derivationOf": "929mfF5F5wKgMaFG2", "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-11-7 17:51:16"}
{"_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": "S7QDC5KHi43yzEvAz", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies ( all li : l.link | li in Trash )\n}", "derivationOf": "hq6wTkQyRAhc3o9Dk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:20:12"}
{"_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": "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": "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": "6AWe3NaYfE2E6ziYA", "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 = 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": "mvJ9wBJttDW3yu3am", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:40:23"}
{"_id": "8MJAXkGXCLKerWS6Y", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2 : File | f1->f2 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zpqhBoY67oPCRnCq4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:00:35"}
{"_id": "c5XRkBrhkpQCyND9L", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, fl:File.link | fl in Trash implies (no fl in File)\n}", "derivationOf": "Z99K6zRBR4oSuvrk3", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:37:10"}
{"_id": "FSiCR22JaAu2fPKSy", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall bruh : Protected | bruh 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": "H79srhtHWNyfPQKym", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:15:58"}
{"_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": "r2cwYtwi96csZ96NB", "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  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File, f2 : File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tnot (some f1 : File, f2 : File | f1->f2 in link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "442eFotDkDNdb2SHP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:28:16"}
{"_id": "4t2zciZCc69ykCR6F", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | some link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "NtzAJ2uED5zoakzem", "msg": "This variable is unused.", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:00:06"}
{"_id": "uNAHxCqqLCYYAgDbN", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zmzq4CKdrHxFJfXho", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:41:18"}
{"_id": "s8JXgCTDo8LDGeEXt", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rmv8QDQXL9TAYM6fB", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:48:06"}
{"_id": "hz9hjPWJhTKBg9yJu", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f2 in Trash implies f1 in Trash\n}", "derivationOf": "iBfguWtb5WGqsnRbq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:43:47"}
{"_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": "QiRjXJMvJRETZbJyE", "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  \n  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "TysAZpGMPbGdxvFhd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:04:07"}
{"_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": "4L9Ccd7kozk3AEqNe", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File | some y : File | x in Trash or y in Trash implies x -> y 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": "HbvgrqLGyaZndFsq9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:15:59"}
{"_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": "bFRbSv4eHCtefbrAa", "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 file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,x : File | t->u in link and t->x in link implies u=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": "EzosBgcHGSNA29o6X", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:24:14"}
{"_id": "kqeurPSry9z47JciK", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HM39DPWDJFfT3AMWr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:28:36"}
{"_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": "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": "kYCd9nPa7QrFSKYtS", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "f6GEZLu9NB4zSnB8Q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:38:50"}
{"_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": "GeBNzWppWfgjTx6Kv", "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 w : File | w 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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KXKqTCaKEAWqgYysK", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:49:38"}
{"_id": "NDQmNKnLs9t6MGyKZ", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t in Trash or u in Trash implies t->u not in link)\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "W2YMqbrDBBtS4m7Hh", "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-10-27 19:53:12"}
{"_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": "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": "tckvMuKjeXaXM5ryY", "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  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": "ckwycTKStobaSGiw9", "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": "2020-2-17 14:01:32"}
{"_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": "3HjGexsTF3HxnTNwj", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "tZyymxdCNEGbAEWRA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:58:54"}
{"_id": "Jo9XKmJSgirb8e7hE", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File,  | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,t,u : File |f->t in link and t->u in link implies f->t not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eWq2okmJ49CYmBgL6", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:22:29"}
{"_id": "652yaAZQeZR58WRvk", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P94boTCtaQaWFBBaq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:24:37"}
{"_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": "5sDEmaaQQJ2WdNmXp", "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 implies t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wxPWH5Q7zXfZgY8X3", "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": "2020-2-17 14:04:50"}
{"_id": "Le7NfojBCXgBM8RLQ", "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\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": "irMNb27gQGBYZHDik", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:26:35"}
{"_id": "k3purQSg2d7qhSdzL", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KxEunsFzKiCWRga2Q", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 17:21:44"}
{"_id": "bHhM2SjDt8zRF9HxT", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | t->u in link implies t not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "Qm4miuPtaJ7yhXuLf", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:57:13"}
{"_id": "BoKCBE6y7HyNE4BK8", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,x,y:File | f->x in link implies x->y not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,x:File | f->x in link | f->x in Trash implies x in Trash\n\n}", "derivationOf": "NAzd8SPdhaw6yhWZn", "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-11-7 17:51:59"}
{"_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": "QhLtcK6WmgEjfBmF2", "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\t\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,f3:File | f1->f2 in link and 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": "iZjMXSkfQPqymQXhF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 19:47:46"}
{"_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": "DjrCmNbSfgdHroFEB", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no link.f + Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kNDbBu5X4puu27KXq", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 11:44:08"}
{"_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": "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": "GeyKH9SJYkxSNqQFF", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies (f1 and 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": "Cwrw7CKpsnDsF7jc9", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 02:51:49"}
{"_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": "Zmzq4CKdrHxFJfXho", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P9jw6S5adcWAp9v2K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:39:31"}
{"_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": "vaKNhGNyjFzAFY3xD", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File, t:Trash | f1->f2 in link implies f1 and 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": "b5T9BLxaSYewxyWgg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 02:46:21"}
{"_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": "wtHoWpAha37EwLt2T", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "7hxsEGn8QnxD3F4oM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:48"}
{"_id": "B9uhzDfErcaQ8NMXQ", "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\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File: lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ivs2AsyFfRhzP3YFh", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-17 22:18:15"}
{"_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": "GgA4YQs4jm88KDv6X", "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 { all t1->...->tn 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": "RNaLYzNKJEiE5bajt", "msg": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:01:58"}
{"_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": "5Sj2yMJxa67tHg4iC", "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  all f : File | f not in Trash \n}\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 | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all l : File.link | no l\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "oePKJGP9PsALheQ24", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 23:11:11"}
{"_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": "k7Xs6KTKFR6SB88KM", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | s 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": "YXmZQ2ScPDZFhJm4Q", "msg": "The name \"s\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:09:40"}
{"_id": "rMBdZ7Gt8TsdBmgJL", "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/* 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": "jjYFJ8fAsMpSMqZPy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:27"}
{"_id": "k8jrrhMQW4BC5jGZS", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone link.f \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NXtJDnqSq4bdhDhXz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:30:58"}
{"_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": "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": "HXxMT7djY3BhWTEaK", "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  \n\tall f:File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \tsome f:File |  f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  all f : File | f in Protected implies 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\t\t\n  \tall 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\t\n  all f,x : File | f->x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x : File | f->x 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": "AbpP9tJHnkWFKjz6Y", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-7 17:50:13"}
{"_id": "Lj5SsWSnu6nmGJoRo", "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\tno Trash\n}\n\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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2: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": "iJF39hAm2RYYD9HPW", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:42:23"}
{"_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": "rnGYx4KfM9XfGD4Fy", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NjE2vqBSPr2ceCuXm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:28:17"}
{"_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": "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": "qSjbSQRQMWf2oL64Q", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "GDNqEQ4C2kcoFSxgr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 22:08:27"}
{"_id": "2cqzi5DpeJLppt6WR", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n  all File : 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": "aZnD5ifKLYq7CRzEi", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 15:58:16"}
{"_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": "M7iDTjHPyiLznA8R2", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 -> f2 : link | no t: Trash | f2 in 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": "Z7Zg2mF6LHto5vfwP", "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-2-17 14:30:55"}
{"_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": "Drw5uNvknDzgzu5MC", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6YENokhosNHXCzkYm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:01:01"}
{"_id": "wPXrwdZ8nRm2xikhX", "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 [ t : Trash ] { no t 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": "oZwjnrw94AhwXgrkb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:10:24"}
{"_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": "iT8Q5P9AB7Cgdh3gk", "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\t(all t,u : File | t->u in link implies u 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\t(all t,u : File | t->u in link and t in Trash implies u in Trash)\n}", "derivationOf": "3meiDXwiCaD5ngc42", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:59:47"}
{"_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": "cWPAiiuEEH6S8Jv3m", "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  all t : Trash | t not in File\n\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 f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all p : Protected | p 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": "oA26rGePQLTYDcqQv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-12 04:14:18"}
{"_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": "yxoWnysynSj3jqd7y", "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 f:File| f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected and Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6KupcTQmyubvPqyG3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:36:24"}
{"_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": "Mm5oxdeinqEwCCnMQ", "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  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rCM49mFQnEMhkbQRb", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 17:07:20"}
{"_id": "jT6DJiopHSuiEfeX5", "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\t\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,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QhLtcK6WmgEjfBmF2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:48:14"}
{"_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": "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": "ciQwtpPLfnaeQAsZv", "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 implies t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rCDXBbggFR8WpfkWK", "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-2-17 14:06:23"}
{"_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": "exYKGbL5zRRpDhmBx", "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  all t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : file | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in 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": "b2z9R83NAcwnhKjay", "msg": "The name \"file\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:15:45"}
{"_id": "WPSJcPcxvJD4vPyur", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link implies t->u not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and u in Trash \n  \n}", "derivationOf": "gjSeg7B7Api6CSdZd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-31 16:32:24"}
{"_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": "it6mwPeACehaocj67", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "wtHoWpAha37EwLt2T", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:52"}
{"_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": "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": "nbLma698xgQg4QuJT", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash and f2->f1 in link implies 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}", "derivationOf": "jJqJhMETzE6bGtwdZ", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:54:06"}
{"_id": "pheYL3LvJdAvKRuXd", "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  \n  all t : Trash | t not in File\n\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 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  all disj f1,f2 : File | some ( (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": "aa5XkD7e7b43rQkji", "msg": "This expression failed to be typechecked line 68, column 27, filename=/tmp/alloy_heredoc9033813921792998318.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:29:25"}
{"_id": "CQihG75tzuToBkWhJ", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk 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": "FM9tPXGuRFTJoJFgf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:52:58"}
{"_id": "mJxsWiNPuGbcX2aFk", "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: File | file not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall file: File | File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome file: File | File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall file: Protected | file in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall file: File | file not in Protected implies file in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall file: File | some linked: File | file->linked in links implies all otherFile: File | linked != otherFile implies file->otherFile not in links \t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall file, linked: File | file->linked in links implies linked not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall file: File | not some linked: File | file->linked in links\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": "sDLK7uBCbgZon3znd", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-30 13:02:53"}
{"_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": "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": "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": "ziAFn7jW5drGMFLin", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iGepTyHCSNheo57qE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:23:30"}
{"_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": "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": "25KstaxqZdf9rRadr", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | all l :f.link| #(f.li)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5unvxCGeZ82Z4SqTo", "msg": "The name \"li\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:25:57"}
{"_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": "SPk7rnDqtixXfb8vm", "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 => 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": "dxfwJ5YRv3MeWWm6H", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:48:11"}
{"_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": "w6JuE2JiepnEwTYGj", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all t: Trash | t = none\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MTCwymgN5Xjt5LXxk", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:24:32"}
{"_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": "QGKSeJWZXaDHFLctp", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t!=u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n}", "derivationOf": "gvSoZjtWcCo8pAwbs", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:31:00"}
{"_id": "ur3Z4grvM297fzDJF", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f in File : Trash(f)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZTsRLBFJiMFwgpKiu", "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-10-22 10:28:58"}
{"_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": "vcgznLHTRfRd7ijYe", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,x : File | f->x in link implies f->x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in link \n  \n}", "derivationOf": "FENWYF8LXSf5vBZ4q", "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-10-29 09:21:08"}
{"_id": "xaBRT6LcwoGfQPELC", "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 t = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Wf7umMxXnmNZh9q2x", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:27:36"}
{"_id": "uDqxqj2LQhN6oQhKh", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "gRcYspy8z923dd6bs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:50:48"}
{"_id": "nuNQfzK5SEQNg8hqu", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:File in Trash | 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": "KR9LLqgnuhCpBxw8j", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 09:43:46"}
{"_id": "t5gABvz99yfhTtzQv", "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 file : File | 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": "wazejnXeR4RCvt6bo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:20:06"}
{"_id": "2gAdN9fCPskmkkqLg", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link | t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "s5LN743RnLMKbxFLw", "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-10-29 10:07:54"}
{"_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": "qnJ5uvoNpziRrnrkr", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 in links and f -> f2 in links => 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": "A7qsj4oGqYfWiuvxK", "msg": "The name \"links\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-30 16:55:21"}
{"_id": "J53iRPvCd6hdM2Sps", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all all f,b : File | (f->b in link and f in Trash) implies  b in Trash\n\n}", "derivationOf": "H8opbghKPaTs55CKR", "msg": "There are 1 possible tokens that can appear here:\n'", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:22:22"}
{"_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": "gvSoZjtWcCo8pAwbs", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,u,t: File |f->t in link and t->u in link implies t!=u\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n}", "derivationOf": "ynqJpBs4dZHQTFWMF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:30:39"}
{"_id": "nYWGT8F9p2KmWPJXp", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some a:File | some b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Te7doy6mbHeAZx5at", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 10:57:54"}
{"_id": "CLka5NZFr2m4SH4ua", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HwBp2QiXzZJCj2797", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:36:19"}
{"_id": "nQWqA3YaScGdNLWnL", "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 f1, f2, f3 : File | (f1 -> f2 in link and f1 -> 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}", "derivationOf": "NK5Y5LjeNpAsSCMaZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:36:23"}
{"_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": "KDmeGGxByXGFriWEC", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SFEFG7d329jfgumKm", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:43"}
{"_id": "HuqkSmprR5vXhGK33", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies l.link in Trash\n}", "derivationOf": "TFi9MxwmFCiEgpjqX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:12:29"}
{"_id": "Gg2coEPmzn7KL55PC", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all l : link , g,f : File | g->l->f in link and f->l->g in link implies g=f\n\n}\n\n/* There is no deleted link. */\npred inv7 { \n\n}\n\n/* There are no links. */\npred inv8 { \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fRq6hBKreiXTmNDi2", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File->this/File}\nRight type = {this/File->this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 10:03:32"}
{"_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": "cQZG4D9JGJG5wED5k", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "kWPtLhnWx8YPdcgEy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 14:23:52"}
{"_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": "ctFgNpj9dxNEGEz9w", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n  all f : File | f in Protected implies f not in Trash\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  all f : File | (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n  all 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": "kXhY3PAfirr6sovNa", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:27:43"}
{"_id": "KKZgdLxXSi32FT43B", "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  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fPofYQRnY4NQSy4FM", "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-10-28 21:05:05"}
{"_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": "BwYYeou3TfGbQqWva", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "6kCg6jqDZfDvRpg8s", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:19"}
{"_id": "PiHD22JmfLBAYgJDK", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (all t,u : File | (t in Trash or u in Trash) implies t->u not in link)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "JGg2GAfYnhQ3Ahitd", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:53:32"}
{"_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": "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": "hhhNtmdFWFzFXQ2wc", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | l in Trash implies l.link in Trash)\n}", "derivationOf": "YxFyFxJaKWYCzq9HF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:39:04"}
{"_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": "JHSzLNZp9mzfF4jwa", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | not no 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": "rqGjimHWupH5ZjHZi", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:44:21"}
{"_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": "vtpPXx5Jrzw6d7eYe", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash and l.link in Trash\n}", "derivationOf": "A6iw5L64aCLuMPZmv", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 18:17:26"}
{"_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": "xFdjh4PmKF9qsEHZv", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\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\t(all t,u : File | t->u in link implies u 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\t(all t,u : File | t->u in link and t in Trash implies u in Trash)\n}", "derivationOf": "iT8Q5P9AB7Cgdh3gk", "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": "2020-10-27 20:00:55"}
{"_id": "tJy6dBzTamiXReFQB", "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": "S2qWqyzDGu2t8ckfo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:06:17"}
{"_id": "EGp72vW6Mx3YCJx4m", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "dhadDa6pByM53QFfr", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:48:57"}
{"_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": "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": "nxCg8DWKxJcn5uZnf", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "9bMYDcjnoL5xc2vwx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:00"}
{"_id": "dSafiq3R4Ed6szmBa", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File | (f1->f2) not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3yx5ADPMDs6a468Mn", "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": "2021-1-12 04:51:20"}
{"_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": "j5LGK332zys2zpCH2", "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  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "Cb7hTYyjbdi6up5Ld", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:10:09"}
{"_id": "KXKqTCaKEAWqgYysK", "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 w : File | implies w not in Trash and w in Protected\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JqoF9PnwYXzPQKyQS", "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-10-29 09:49:19"}
{"_id": "2sENiwfS2C6xntLuL", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "CLka5NZFr2m4SH4ua", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:11"}
{"_id": "SgC9FY3wLFCfogrFZ", "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/* Protected files 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": "sadqop9nqjeKakqDk", "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-10-22 10:29:09"}
{"_id": "GFaaKapCp9Xp6iNdo", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\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": "uNAHxCqqLCYYAgDbN", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 16:42:32"}
{"_id": "iT4skxf5ZM48y6mgQ", "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 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 | f1->f2 implies f2->f1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "STewfWdkLMgYEA9Pf", "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-10-29 09:27:22"}
{"_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": "9XsPSpwgATrFjZSt2", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EZPdv7eBpZxaiFgYf", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:37"}
{"_id": "oZwjnrw94AhwXgrkb", "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 [ t : Trash ] { t 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": "aJCzn4G3e2nhcH4Ez", "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/inv1.\nThe parameters are\n  t: {this/File}\nso the arguments cannot be empty.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 12:08:04"}
{"_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": "BxpdSvkixfxryg4ys", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4SA6kmj3BiXr7sigW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:13:52"}
{"_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": "98bhqgTnEJuv7bw7z", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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  all f : File | all l : f.link | lone l \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n\n}", "derivationOf": "MouRx5vddi5ZefNYg", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 21:37:35"}
{"_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": "H3FiAYkrQfhfrHeM9", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "AgTvXyCjdjE9CyYCE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:09:22"}
{"_id": "DeCF5Hg82hJeo78JP", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies t->u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u not in link)\n}\t\n\n/* A link does not link 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": "DCuTcXPjdHfqsAi2e", "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-10-27 19:42:05"}
{"_id": "wXn3QZgMbHydHtqEY", "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  no File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LwHwp6SKfBqkafkcT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:27:37"}
{"_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": "BzR27pNJiRwJmjJvf", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "9JhAmNZvrSKdv4Dgd", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:07"}
{"_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": "pQwxLJpMxSApELcjv", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link \n    \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n\tall f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "A6HadWQkp8ecav94u", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:52:32"}
{"_id": "8kmAhcPDkD6hMTR3R", "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\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File | f1->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": "9ukZ5ycb3xHTY9emv", "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-10-28 19:46:21"}
{"_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": "F8qW9jpy8ZySECdLc", "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  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "G6KNaWgD29ra4XWev", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:22:08"}
{"_id": "T7X2Di7o4jH9YvBeF", "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 File1\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a,b : File |\n  f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kmCci6ZLEoMn6qygL", "msg": "The name \"File1\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:10:53"}
{"_id": "vJByh5w6k5ixrFKeE", "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  \n  all f : File | f not in Trash \n}\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 : File.Protected | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "qhkPJSX63YMDAkTbD", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-4 23:00:12"}
{"_id": "Zw9qko2ribbc2dLFj", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1->f2 not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bCcmLdBa8iAwrgLDm", "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": "2020-10-30 17:16:17"}
{"_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": "yqQd2yz6wsEXYaSiq", "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\tno Trash\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\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fqugDxcFp4LDPXaEu", "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-10-22 10:41:23"}
{"_id": "W2ZDtsdAsLiKFaDfm", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "CtJNFqRwasfktef8P", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:45"}
{"_id": "TasfL9JwRkKxHMHBE", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | \n}", "derivationOf": "vtpPXx5Jrzw6d7eYe", "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-10-27 18:18:38"}
{"_id": "a6aF7nQ7vkSAxCPwX", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all all f,b : File | (f->b in link and f in Trash) implies b in Trash\n\n}", "derivationOf": "J53iRPvCd6hdM2Sps", "msg": "There are 1 possible tokens that can appear here:\n'", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 18:22:31"}
{"_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": "5jN9RQML3Dy2hio2i", "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 | 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: (Files - Protected) | 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": "MeAAeSkr7vRtAFzkp", "msg": "The name \"Files\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:43:03"}
{"_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": "nHzYvg9xPLkeGPBS7", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1->f2 in link and f2 in Trash implies f1 in Trash\n}", "derivationOf": "hz9hjPWJhTKBg9yJu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:44:17"}
{"_id": "irMNb27gQGBYZHDik", "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\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mHxd7Hu8rJfMLWQFL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:23:41"}
{"_id": "SeyhHcfzXFq5Gn2xG", "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}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BWJ7Ncnmsmt2MrtgG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:23:26"}
{"_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": "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": "8xaSnvb8BmtyGeHqu", "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 w : File | w not in Trash or w in Protected\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s8JXgCTDo8LDGeEXt", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:49:02"}
{"_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": "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": "NnpoK3iLvNQhHcR3g", "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\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl not in File)\n}", "derivationOf": "LbTwzqSqKE89oCf3K", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-7 23:50:07"}
{"_id": "Fkri2azgbHb7NxR9r", "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  all f : File | f not in Trash\n  \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 | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "LoepvSsFXnBuJ4nsh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:08:14"}
{"_id": "pk3qgRMMpJ7H2mr8g", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in 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": "w6JuE2JiepnEwTYGj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:25:12"}
{"_id": "WHnaHYvqeqZWRCqW8", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f, f1 : File | f->f1 not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | (f->f1).(f1->f2) not in link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link, l1 : l.link | l in Trash => l1 in Trash\n}", "derivationOf": "mChYi58vq3ZtgHntY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-30 17:30:01"}
{"_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": "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": "FGrmKA5kqMyM8XLtz", "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 and 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": "zoyhW5wZTiWS9fXHr", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:39:24"}
{"_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": "9nZBHGKeaXEPLJNW2", "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": "CPFJkj427TZHcnHGu", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:06:18"}
{"_id": "KR9LLqgnuhCpBxw8j", "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/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:Trash | 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": "Aj9DHJaDcLN4nBzay", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 09:43:23"}
{"_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": "MEW2atBhkp3mniXWo", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HeLgeXXpTpwmjt4B9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:29:52"}
{"_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": "grNsxdEkHja2fndAX", "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 = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uxvCE7HkaXG6AZLnB", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:27:07"}
{"_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": "ZdRcGAxZwCsWyfais", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |  f->u in Link implies f->u in Trash implies u in Trash\n  \n}", "derivationOf": "4aPEL96SCTzzxwRXh", "msg": "The name \"Link\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:10:44"}
{"_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": "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": "xD9umeCXXaXKHyA78", "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  no 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 : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l : link | l 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": "pmSYCLBD6DPd6q53C", "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-10-22 10:45:52"}
{"_id": "oC3m7BKAGPbTiNPLv", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2 : File |\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File and f1->f2 implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2AmwfNADkcXTsPZEM", "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-10-28 21:01:57"}
{"_id": "MuHz3gvcCPqPPKHLk", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "57AfDSwERYdrMbpsE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:53"}
{"_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": "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": "8XfQyeoHzG563uYoW", "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}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ngaqPuPPSMKqAoTLP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 23:37: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": "7WRQ2fHGBW3iHJbPy", "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\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n    no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n    (File - (File & Protected)) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n  \t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dc565Asmdm6fKpgw6", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:48:29"}
{"_id": "WSPPNEgfSAxcQjHnp", "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\n  all f : File | f not in Trash\n  \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 not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  all p : Protected | p not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  all f : File | f not in Protected and f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "umsGXs6j2Np5EuBk9", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 21:06:32"}
{"_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": "DR2x7BisDcbm6AJ62", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GeBNzWppWfgjTx6Kv", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:49:51"}
{"_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": "9JhAmNZvrSKdv4Dgd", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "7GAqowkZjS9nA6uAP", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:04"}
{"_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": "b2dJ9cHijTkTiGyGu", "cmd_c": false, "cmd_i": 0, "cmd_n": "inv9", "code": "/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\nrun inv9 for 2\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8GhGabSqDQAhqLPSu", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:19:09"}
{"_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": "4yqhCjJmYdno9fJPr", "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\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": "4DhPPQj7RAP5H6tY7", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:09:07"}
{"_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": "Y8eSpC4L2SG29BJxF", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wXeen5picz6d9WB7b", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:31:09"}
{"_id": "tvuyZkTLFqocKBqpp", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/*\n\tAlloy4fun link:\n    \thttp:\n*/\n\n/**\n * First-order logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using only Alloy's first-order \n * logic:\n *\t- terms 't' are variables\n *\t- atomic formulas are either term comparisons 't1 = t2' and \n * 't1 != t2' or n-ary predicate tests 't1 -> ... -> tn in P' and \n * 't1 -> ... -> tn not in P'\n *\t- formulas are composed by \n *\t\t- Boolean connectives 'not', 'and', 'or' and 'implies'\n *\t\t- quantifications 'all' and 'some' over unary predicates\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | 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 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\tnot (some f1, f2 : File | f1->f2 in 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 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": "z8osfJiLe3Gz43EcA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:37:45"}
{"_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": "zbvG6mLEeFupQq8AC", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "syMKMuqtHq2ATXuhf", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:17:58"}
{"_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": "2qrEbA37qi4jdpG5w", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n all f : File | (some l : f.link | true)\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "cTphknybqoBA6p9Jr", "msg": "The name \"true\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:04:14"}
{"_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": "6pNYskQ2pq6dGNnc2", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies t->u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u not in link)\n}\t\n\n/* A link does not link to another link. */\npred inv9 {\n\t(all t,u,v,x : File | (t->u in link and v->x in link implies u->v not in link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DeCF5Hg82hJeo78JP", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:46:32"}
{"_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": "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": "NsuYvaoopghXFrKXs", "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 {\nfor all File f : 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": "AhCn6zFskJAH6ANMo", "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-10-27 23:20:10"}
{"_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": "DLMkiEaFMgsoygcwj", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n}\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n}", "derivationOf": "cTTQau9WictDPHxMb", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:47:41"}
{"_id": "GKZf9KJFBQ8pHrdQ2", "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": "iKNeymiY2Sfv9XW7D", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:23:05"}
{"_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": "qxwf72mfcu5deFMgk", "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/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7rzeSvyJme56EXEF2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:24:05"}
{"_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": "zdADwyeCavzkGrPZS", "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 | 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 | 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": "xTcMP8ra7ZNBYdig4", "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-10-22 10:40:48"}
{"_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": "f6GEZLu9NB4zSnB8Q", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink.File in univ\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | link.f in iden implies f in Trash\n}", "derivationOf": "WkTJHY8aFtvoqLqTF", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:38:43"}
{"_id": "dhadDa6pByM53QFfr", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "7NoZXYiSGYFCX2Rxs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:48:52"}
{"_id": "jbzJ99xc9WZqAfSqN", "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 {\nno 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 : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nall f : File | (f not in Protected) implies f not 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": "uLsqmAohLKwrM5pB4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-13 21:24:03"}
{"_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": "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": "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": "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": "ES4cobHCKY3uEoro3", "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 \"f\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 20:21:52"}
{"_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": "7WQpwgz3NCoPLjtXj", "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/* 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\t\n  all p : Protected | p not in Trash\n  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n \n  some f : File | f in Trash implies f not 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": "r269hFBMYMRuFYxv4", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:36:45"}
{"_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": "ge6PNMp9KFWSW5tMo", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k7Xs6KTKFR6SB88KM", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 16:09:47"}
{"_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": "qhkPJSX63YMDAkTbD", "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  all f : File | f not in Trash \n}\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 : File.Protected | p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "89gLuriwSr33uZFhg", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-11-4 23:00:06"}
{"_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": "2AmwfNADkcXTsPZEM", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2 : File |\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in File and f1->f2 implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   all f1, f2 : File | f1->f2\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XtSp9kisLsF948rBK", "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-10-28 21:01:52"}
{"_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": "BnEnN9EtWbdmvCb9T", "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 none 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": "2E3RDaCcoFu5KFstv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-23 11:18:37"}
{"_id": "XdGHqYhYYBAKab5rK", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "eQhXXGANBtnytcL2J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:56"}
{"_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": "9PvHdeMFiouTeoLg8", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* 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": "bN9i92PpK3wTGgQPW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 11:41:37"}
{"_id": "zeRxdBpEZrQYMYXpc", "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  all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: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": "TqgE4TfZo25TDgYQs", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 09:39:41"}
{"_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": "Eqt24jyGRMicChk5e", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "5dWPXK294djLyCbY4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:53:12"}
{"_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": "FF3FdydMH6K26QKwy", "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": "ES4cobHCKY3uEoro3", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:21: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": "eWq2okmJ49CYmBgL6", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t 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": "SfJkJRNcfqZxeGez4", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:15:58"}
{"_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": "C6zMRETeq8ukFz9Jg", "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 {\nno 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 : 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": "RPSzQDfMZRbAb4LBz", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 21:22:31"}
{"_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": "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": "sgaEnjMmCgNiwEayN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, 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": "FjJaPbaYiaHSTj54X", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:14:54"}
{"_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": "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": "xpCeQ6dtm8KcYFnET", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "XtCRvrbLQjBf6NSCS", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:22:31"}
{"_id": "qtQYeq86TNYwQSZjr", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AefYThNesDX7Xr6u4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-13 17:13:24"}
{"_id": "64Dn8Xj2tc4Q4mamf", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n   all f : File | #(f.link)<2\n\n  \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | (all l : f.link | f in Trash implies l in Trash)\n\n}", "derivationOf": "CQKTHPuz8iT6tpsz8", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:20"}
{"_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": "5EjHcYTqxrnwTN3LM", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, t, u : File | x -> t in link and x -> u in link implies t = u\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x -> y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x -> y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File, y, t : File | x -> y in link implies y -> t not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y3LoX5PYxv889JHvE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:19:31"}
{"_id": "u4C5gHdxXb6Xkwywt", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n    all f : File | (all l : f.link | f in Trash implies l in Trash)\n}", "derivationOf": "Tf6ov6zd3FG9p67ti", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 19:10:16"}
{"_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": "6QyaTQnBDsqJ7YJsC", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GZ4x998qBmfGmcmfB", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:58:56"}
{"_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": "sadqop9nqjeKakqDk", "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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XSKnprgAXHxRbH4CC", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:21"}
{"_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": "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": "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": "XtCRvrbLQjBf6NSCS", "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\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", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 12:21:54"}
{"_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": "bTXSdtY52DDbEWXAD", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2 : File | f1->f2 in link and f1 not in Trash and f2 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": "WmL6r3aQNjNoM2i5j", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 10:25:11"}
{"_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": "9i6jwi9NSMDLEPWJZ", "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 { all f: File | f not 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 { all f,g : File | f->g in link and \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another 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": "2020-10-29 09:54:32"}
{"_id": "zFgzdZnJmAvrtTcoe", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:(File - Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f:File | #(f.link) <= 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f:File | some f1:File | f != f1 and f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l:File.link | l in Trash implies (l not in File)\n}", "derivationOf": "fP7idGwv8q7ccPuwF", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2021-1-7 14:24:49"}
{"_id": "ZFK4wvPcdWDSEAiC8", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | l in f.l)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p5FxpdcwLRayeoMsR", "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-10-27 16:53:15"}
{"_id": "B3mqrWaziGNdBXKnW", "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 bruh : File | bruh not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall bruh : File | bruh in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome bruh : File | bruh in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall bruh : Protected | bruh not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall bruh : File | ((bruh not in Protected) implies (bruh 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": "8Gpeh7ocFogQDX5Rq", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:22:00"}
{"_id": "ohotmyEww2r58WksS", "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 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, f3 : File | f1 -> f2 in link implies f2 -> f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1 in Trash and f1 -> f2 in link implies f2 in Trash \n}", "derivationOf": "Yu87MvZRKGHFhvtfn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:18:51"}
{"_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": "ZcbnBs69LyjD2Wjvv", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | (link.f) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KhkGWszQWTsur72Ni", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 16:34:35"}
{"_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": "iBfguWtb5WGqsnRbq", "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 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 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, f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f2 in Trash implies f1 in Trash\n}", "derivationOf": "cuknkhHkALoJDSX63", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:43:43"}
{"_id": "7NoZXYiSGYFCX2Rxs", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File, a,b:File | f->a in link and f->b in link implies a=b\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1,f2:File| f1->f2 in link implies f2 not in Trash\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\tall f1,f2,f3:File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "269yb4T2w7AMax9NQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:48:49"}
{"_id": "Bw62kPudqvaGmjRdx", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | one t : Trash : f in 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": "pk3qgRMMpJ7H2mr8g", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-2-17 14:25:44"}
{"_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": "797Hcx9635ANjBrPW", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H7E2epNYcFxoM4c6m", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:32:10"}
{"_id": "S6sjsD4fefZRkANZh", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some 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}", "derivationOf": "qNCydgP5whjyncExT", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 10:50:11"}
{"_id": "nh3YCGYKgCm4TRDeS", "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 t : Trash , f : File | f->t not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Djv2D88ttZvEkAPdg", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:44:15"}
{"_id": "bNG3ALykABGpNvJcW", "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: 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\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": "9nZBHGKeaXEPLJNW2", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:08:54"}
{"_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": "DSgpHh6YbMKRXsauy", "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\n/* The set of files in the trash. */\nsig Trash in File {}\n\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p: File | p not in Protected and p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | some l: link | f implies some l\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": "2aKoEa3N3kHWHN3KZ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:44:37"}
{"_id": "GsiwiK8bGTc3RyE8F", "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\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (some t,u : File | t->u in link implies (t not in Trash and u not in Trash))\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u 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\n}", "derivationOf": "Ks8tb92bDqEcQz8kx", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 19:54:41"}
{"_id": "9J2cMMEx2GH3wC79P", "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 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": "Lbjqyb2FsxNtw6nYZ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 20:37:04"}
{"_id": "hYComHFD58PYEKka2", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "RsMH49MzEDf5grap5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:02"}
{"_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": "mHxd7Hu8rJfMLWQFL", "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": "expfMcFH3yYYE678E", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:23:13"}
{"_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": "znHYRj4KA6hQpADjp", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | (l in Trash implies (all li : l.links | li in Trash))", "derivationOf": "uRy8qayYSLGGJmJQt", "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-10-27 18:25:39"}
{"_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": "xoHLmyDot5zbK5ED8", "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 t : Trash , f : File | f->t not in link\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Wg2h5Xj79QN5fq9K9", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:44:06"}
{"_id": "HM39DPWDJFfT3AMWr", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rnGYx4KfM9XfGD4Fy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:28:27"}
{"_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": "gWQJGtdeEzGwpKkWR", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some lk : File | f->lk in link implies f not in Trash and lk 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": "GwRj22vQFgZTNLYoY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:53:40"}
{"_id": "2SfptiY9PXzJRJguc", "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\n}\n\n/* All files are deleted. */\npred inv2 {\nall Trash :File|File in Trash & File not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zqAktmMuWYgwS4Mzu", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 13:37:59"}
{"_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": "snG3kL4NdTajn5Lcu", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File,  | f->t in link implies f and t not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,t,x,u : File |f->t in link and x->u in link implies t->x not in link\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8ch4LzffG7gqo7ngs", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 21:23:59"}
{"_id": "p6ZXBeE3AwWwXH636", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1 not in Trash and f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "up2zAvtaveewc6XFy", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:12:23"}
{"_id": "vkoQ2SM8CuNDXDkwt", "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  all t : Trash | t not in File\n\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 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  all disj f1,f2 : File | some (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": "xGvqjFaXMAmLyYfjC", "msg": "This expression failed to be typechecked line 68, column 27, filename=/tmp/alloy_heredoc10347972936033145817.als", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-12 04:28:41"}
{"_id": "66MzYemacNHKv2KWE", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some f: File | f not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { all f: File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all f: File | f no in Protected implies f in Trahs\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tfXoAfu932ceurmza", "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": "2020-10-29 09:43:54"}
{"_id": "NYN4y9h6v5tv8cnoQ", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "2bjdjGLePbSLo9Jsh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:31"}
{"_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": "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": "tEfZyqPqwPY89upsu", "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/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zYBg2EayGgHL6ENPA", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 09:40:39"}
{"_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": "ZSeyJnXrGsbGdj9X5", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dkZ3ttnkp3BjDGCc5", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:26:14"}
{"_id": "i8GCsLtHdYnm9iJin", "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\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/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wKhfKv4zaTkna9FFH", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:21"}
{"_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": "89gLuriwSr33uZFhg", "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  \nFile not in Trash}\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\tall p : Protected |  p not in Trash\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  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all l : File.link | l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | all l : f.link | no l \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | all l : f.link | no l.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash => f.link in Trash\n\n}", "derivationOf": "7FGWYsEXBhCNCq2sP", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-4 22:57:38"}
{"_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": "DxX6BtCKZEwvi3EyN", "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\tno (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  no (Trash & Protected)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f: (File-Protected) | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,l:File | (l in f.link) implies l 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\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall f,l : File | (f.l in link and f i Trash) implies l in Trash\n}", "derivationOf": "rgaQna4C5wZZMA6Bf", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2021-1-13 17:34:47"}
{"_id": "mBNrQ7qsSHC4wjYLz", "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. */\none sig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = 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": "MDgS2DXcorkrEGvft", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:46:29"}
{"_id": "aReDJNrMkhbEeWFm8", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "XcmYR55Wdu9GGTRjQ", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 13:09:36"}
{"_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": "R4ktHDiyLavhnkgWC", "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 = Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File - Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TWa5BB7TNhPSEQRrR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2021-1-12 00:50:39"}
{"_id": "ND3KiAC7w8MCTEyWh", "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 f,lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,lk1 : File | f->lk1 in link implies lk1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | all lkd : File | f->lkd not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,lkdf1,lkdf2 : File | f->lkdf1 in link implies lkdf1->lkdf2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,lkd : File | (f in Trash and f->lkd in link) implies lkd in Trash\n}", "derivationOf": "o3Bv3rTYTjjRdeHdj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:58:06"}
{"_id": "uYewFtP6tXa3p4r7Z", "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/* Protected files 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 : 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": "KfK9pi9XDPPWrBr9p", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:30:04"}
{"_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": "CyhuJn5yZdoppDjby", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | no t: Trash | f in t\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File - Protected | one t : Trash | f in t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #f.link =< 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1 : File | no t: Trash | f1 in 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": "jZpgH6mMQBBZeTrDA", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-2-17 14:31:50"}
{"_id": "LeMzMmRp8JDgDh69J", "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\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n \n}\n\n/* There is no deleted link. */ \npred inv7 {\n  \n  \n\n  all f : File  | (all l : f.link | l not in Trash) \n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f : File | no f.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | (all l : f.link | no l.link)\n \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kAbSDpdKTDrPhwCmF", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-27 18:14:18"}
{"_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": "p5FxpdcwLRayeoMsR", "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  no Trash\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  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  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File | (some l : link | l in f.l)\n}\n\n/* There is no deleted link. */ \npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p6wTwQr8a9WarFuhB", "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-10-27 16:51:37"}
{"_id": "bea2vvbtdfjNAcfEq", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash implies (fl in File)\n}", "derivationOf": "i8YehR6aoMihKgbSR", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-17 22:38:34"}
{"_id": "yPfMbYbA9mxmQLXNK", "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 { all f: File | f not in Trash\n  \n}\n\n/* All files are deleted. */ \npred inv2 { all f: File | f not in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some f: File | f not in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { all f: File | f in Protected implies f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all f: File | f not in Protected implies f in Trahs\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "66MzYemacNHKv2KWE", "msg": "The name \"Trahs\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-29 09:44:07"}
{"_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": "pCqBLbY8cbmoa2TAB", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "Cx9MGjAzxpXC7q74G", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:11"}
{"_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": "wfvZ3zzvGynRJm39c", "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/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qxwf72mfcu5deFMgk", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:24:14"}
{"_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": "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": "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": "JK6DZiiKqf6FZJuDG", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tsome 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": "MMyhTnufr92Y5wA3B", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:51:57"}
{"_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": "SQubMZmbiuxQECcve", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash implies l.link in Trash\n}", "derivationOf": "JFbQh7fC268kz2ZWX", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:15:22"}
{"_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": "xfMTkevht8t5kyHLd", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "u4PTXQ7b2jNG8Jaub", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:12:35"}
{"_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": "DCuTcXPjdHfqsAi2e", "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\n/* All files are deleted. */\npred inv2 {\n  (all file : File | file in Trash)\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some file : File | file in Trash)\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies 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/* A file links to at most one file. */\npred inv6 {\n\t(all t,u,v : File | t->u in link and t->v in link implies u=v)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t(all t,u : File | t->u in link implies t->u not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  (all t,u : File | t->u not in link)\n}\t\n\n/* A link does not link to another link. */\npred inv9 {\n\t(all t,u,v : File \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "y4dBHWZ7rGAtpn4Xd", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-27 19:41:56"}
{"_id": "29nnmqtcccMuQn9sL", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7gFs6fd45da9wWEMW", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:14:22"}
{"_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": "d57pZbEu9vkJhDnAv", "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 { no Trash in File\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": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-28 22:42:57"}
{"_id": "o2pPzW5fzRKp4ddQc", "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/* Protected files 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\tall 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": "RREGhhmpwtSsD7Zrb", "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-10-22 10:58:45"}
{"_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": "7mXAniyaa4DCiKnY4", "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 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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File | all y : File | all z : File | x->y in link and y->z implies y!=z\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vLwQKRHstZh4PQZyo", "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-10-29 09:46:03"}
{"_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": "eRuPDPnigvKYiwgLw", "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  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "XS9F8MkR8AJe2qG6u", "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-10-29 09:07:16"}
{"_id": "3hL5LFmdqws9LgdJy", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "gqGEm74spjNM7LQye", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:30"}
{"_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": "R2ADsmL7Cvx8H23ZR", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash implies no f.link\n}", "derivationOf": "SQubMZmbiuxQECcve", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:22:22"}
{"_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": "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": "FcH6zN9CsgajNTS2e", "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  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all 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": "BwekM8Tty2mtC9aKc", "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-10-22 10:28:14"}
{"_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": "zaMChHALGuKhy9Jpu", "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/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "53fRL4q6ceEMXiDwe", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:28:13"}
{"_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": "jj8ohPwX2zELKebRn", "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  \n  all t : Trash | t not in File\n\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 | p  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   all f, f1, f2 : File | f->f1 + f->f2 in link implies f1 = f2 \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all disj f1,f2 : File | f1->f2 not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dSafiq3R4Ed6szmBa", "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": "2021-1-12 04:51:27"}
{"_id": "Ej8aRhuBmwp7GCuSC", "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": "JNAh9qBJCQYFiKGWo", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:22:06"}
{"_id": "os3MLnkZJrfisPsbg", "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 t : Trash | no t \n\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": "MpxjSLZYnmiFeNQ55", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:40:48"}
{"_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": "d4yaDDmfcZJewT2wR", "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  no f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in iden\n}\n\n/* A link does not link 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.f in iden implies f in Trash\n}", "derivationOf": "yzwpyd3WtG7LGbvAC", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {univ->univ}", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-6-14 22:36:06"}
{"_id": "ydtWKd8SpYjd8Nqz6", "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 w : File | w not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all w : File | w in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some w : File | w in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all 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  all f1,f2 : File | f1 in Trash or f2 in Trash implies f1->f2 not in link\n}\n\n/* There are no links. */\npred inv8 {\n  all 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": "eTFFEnvSgjXae4dFh", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:58:35"}
{"_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": "kap6HzTigNRhz42Ls", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nXnhkYwtLBX99Hkjy", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:54:51"}
{"_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": "2Ybcm74owcKnmP3ts", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\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": "Jtmta7C5xXRgdaJbp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 16:15:56"}
{"_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": "wyZ2W383AenRW3Sek", "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  all 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/* Some 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\tall f1,  f2: File | f1 != f2 implies no f1.link & f2.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f not in Trash implies f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1: File | all f2 : f1.link | no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "cNpz5rjviiRvLXxDo", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:05:10"}
{"_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": "ohn4d4DmXNyP2Yfhj", "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 : File | all y : File | 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\tall x : File | all y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall x : File | all y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall x : File | all y : File | all z : File | x->y in link and x->z in link implies y!=z\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7mXAniyaa4DCiKnY4", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-29 09:46:15"}
{"_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": "BYLPuz8JPLtTbn3vD", "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 => f in Trash\n  \t \n  \t \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9wn7h7dCe77brs93C", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-30 16:56:51"}
{"_id": "rWXdstN5nPQ76Es4n", "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\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  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 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": "fC4RLYh576hgWa2Kh", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 16:42:54"}
{"_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": "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": "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": "uBQkyQzrFtvCwpXY2", "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 {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "29nnmqtcccMuQn9sL", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 18:16:11"}
{"_id": "kBYg2ugiSXCpEMCy7", "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\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  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 f not in Trash\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/* A file links to at most one file. */\npred inv6 {\n  \n  all f : File |  (#f.link)<2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | (all l : f.link | l not in Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | (#f.link)=0\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all l : File.link | (#l.link)=0\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f in Trash implies f.link in Trash\n  \n  \n\n}", "derivationOf": "aJjdEAeGn7XPBtZZn", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 17:09:16"}
{"_id": "tZyymxdCNEGbAEWRA", "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. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x,y,z : File | z != y and x->y in link implies x->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": "EBDKs4XdyWig48pJE", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 10:58:23"}
{"_id": "Y8qHb2swZxYx5JkBP", "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 t : Trash | no t \n\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\tall p : Protected |  p not in Trash\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": "ZnHmaG8Xmi4LNw8T4", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-4 20:56:01"}
{"_id": "3c4j3N5mZa6orKy5k", "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 t:Trash | t not in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p:Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some a:File | some b:File | f->a in link and f->b in link implies a=b\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": "nYWGT8F9p2KmWPJXp", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 11:04:21"}
{"_id": "vp6CekHkwv5zLhgpD", "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 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": "oLTWupsGbt2dko4xN", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:23:11"}
{"_id": "9XcrmpKSKw2e24E8w", "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  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/* 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 f,l,u : File | f->l in link and f->u in link implies l = u \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4EnXez5QmwEaF24DR", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:07:36"}
{"_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": "G9NFauXNShDa6PZdS", "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\n  all f : File | f not in Trash\n  \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 | p 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  all f,t,u : File |f->t in link and f->u in link implies t=u\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  all f,t : File | f->t in link implies t not in Trash\n\n/* There are no links. */\npred inv8 {\n  \n  all f,t : File |f->t not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f,u : File |f->u in link and f->u in Trash implies u in Trash\n  \n}", "derivationOf": "qnay5Zkoe4WiCftAR", "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-10-29 10:46:22"}
{"_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": "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": "XZ2y6cjdu95pkW4Fw", "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 f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c5S3Chky3uKTDuWfs", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-6-14 22:26:39"}
{"_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": "373bmYq565Qm42hqY", "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 f : File, lk1,lk2 : File | f->lk1 in link and f->lk2 in link implies lk1=lk2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | all lk : File | f->lk in link implies ((f not in Trash) and (lk 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": "iefmkZqchdqiumXLe", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 12:54:06"}
{"_id": "7uMMKNa56LuKcL7sF", "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": "chKDzRMBfuarMnMkj", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:34:26"}
{"_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": "zoyhW5wZTiWS9fXHr", "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 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 -> 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": "mH6ppcnyPAqbo7yEu", "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-10-29 09:37:23"}
{"_id": "fRq6hBKreiXTmNDi2", "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  \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { \n\n}\n\n/* A file links to at most one file. */\npred inv6 { all l : link , g,f : File | g->l in link and f->l in link implies g=f\n\n}\n\n/* There is no deleted link. */\npred inv7 { \n\n}\n\n/* There are no links. */\npred inv8 { \n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oxmN9YZ59YjymuiaN", "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": "2020-10-29 10:02:59"}
{"_id": "GCBToeYT3kh7Dk3fJ", "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/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File {\n    always(f in Protected implies f not in Trash)\n  }\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File {\n    always(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f, l, k : File | f->l in link and f->k in link implies l=k\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f, l : File | f->l in link implies l not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n  all f, l : File | f->l not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f, l, k : File | f->l in link implies l->k not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f, l : File | (f->l in link and f in Trash) implies l in Trash\n}", "derivationOf": "dzWmy2KqDky8uDPcp", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-29 09:13:38"}
{"_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": "BnXaDoZmBwt9gjMR7", "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\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f in File : f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gA5y2j7d2ZZPC6Yw3", "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-10-22 10:33:42"}
{"_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": "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": "gDkgDwRCnssEMptgj", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8nGSBdhCh2Dc5CeBG", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-11-17 22:25:08"}
{"_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": "RsMH49MzEDf5grap5", "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\n/* The trash is empty. */\npred inv1{\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash \n}\n\n/* Some 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\n/* A file links to at most one file. */\npred inv6 {\n\tall 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\tall f,x :File | f->x in link implies  (f not in Trash or x not in Trash )\n    \n\t\n\t\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f,x :File |f->x not in link\n}\n\n\npred inv9 {\n\tall f,x,y :File |f->x in link implies x->y not in link\n} \n\n\n\npred inv10 {\n\tall f,x:File | f in Trash and f->x  in link implies x in Trash\n}", "derivationOf": "bgL2owkx89GeoXC6J", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-28 19:21:00"}
{"_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": "CebwDmnWuSztx9Tkv", "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\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\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 f1,f2,f3 : File | f1->f2 in link and f1->f3 in link implies f2=f3\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1, f2 : File | f1->f2 in link implies f1  in Trash and f2  in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n   no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1, f2, f3 : File | f1->f2 in link implies f1 != f2 and f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1, f2 : File | f1->f2 in link and f1 in Trash implies f2 in Trash\n}", "derivationOf": "p6ZXBeE3AwWwXH636", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-28 21:13:12"}
{"_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": "jDTNf22Po8MbGwtbA", "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 { all t1->...->tn in File | t1->...->tn 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": "There are 28 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-25 11:59:13"}
{"_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": "GQG54RtMwJnZ4hajd", "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\n}\n\n/* All files are deleted. */\npred inv2 {\n  t not in Trash\n  Trash' = Trash + t\n  File' = File\n  Protected' = Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rv5Zv7nnAb4hPhrnq", "msg": "The name \"t\" cannot be found.", "original": "sDLK7uBCbgZon3znd", "sat": -1, "time": "2020-10-22 10:28:39"}
{"_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": "G9P9tHT63KCr7zudH", "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  all f : File | (f in Trash or f in Protected)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gBZu76pcZJ7fLxcLw", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-10-22 10:31:27"}
{"_id": "zoMBM7GXpSqoSStxq", "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  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n    \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\tall f : File | #(f.link) > 0\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no (f.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n \tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall link : File.link | link in Trash implies (all l : link | l in Trash)\n}", "derivationOf": "HuqkSmprR5vXhGK33", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-27 17:14:28"}
{"_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": "zaN4PG65ZmLjCMH8x", "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 t : Trash | t = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f : File | one t : Trash | f in t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File, t: Trash | f in 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": "exYKGbL5zRRpDhmBx", "original": "sDLK7uBCbgZon3znd", "sat": 0, "time": "2020-2-17 14:15:51"}
{"_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": "GMMh33PjZsNePL6ZS", "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:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:(File - Protected) | f in Trash\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | #(f.link) <= 1\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) = 0\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | some f1:(File - f) | f.link not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall fl:File.link | fl in Trash \n}", "derivationOf": "Rsv9tTAJ8Fks5utPn", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-11-17 22:37:58"}
{"_id": "BwekM8Tty2mtC9aKc", "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  no File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wXn3QZgMbHydHtqEY", "original": "sDLK7uBCbgZon3znd", "sat": 1, "time": "2020-10-22 10:27:44"}
{"_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"}