{"_id": "FemRTPXBSRSvanEL9", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 09:57:58"}
{"_id": "ayZhtACbKc9ya5KnT", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "r2BLPcaXvm4trtHWw", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:27:11"}
{"_id": "ksYBDNNHuTss7dpFP", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno prev\n}", "derivationOf": "GKPB3icDZXhJ7kWpy", "msg": "This name is ambiguous due to multiple matches:\nfun integer/prev\nfun ordering/prev", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 22:58:22"}
{"_id": "ptcbgPbCzNqgFLLZh", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "D7A7FDMDKMPobGaZg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:50:05"}
{"_id": "CKAcCpG6kDKQ5t4PJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\talways(all c : Component, d:c.parts | no (c & d))\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "acYmqxhWBKKqSxFQz", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:04:10"}
{"_id": "99DJkdMHZ2aXTPn55", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "s7XgGfhSsbQWtGjat", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:03:16"}
{"_id": "ESoNWhhtHrm5tBy76", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.part\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7Ys7p3nax5dwkepTw", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:40:37"}
{"_id": "64CJuefBsCnW6Xkua", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall c:Component | c.parts.position in c.position.~next\n}", "derivationOf": "jTj8h6rvWsgM8Q97a", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 19:47:16"}
{"_id": "GvLfgav9wFpF77ebu", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | one (c.position) + (c.^parts).position  \n}", "derivationOf": "nrAd9dMwHJYFsHqdJ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:55:11"}
{"_id": "qYCMM3cqpxwwjNYe2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | c not in c.parts.parts \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ZCrKvtskrsBeBAx2e", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:36:18"}
{"_id": "cNyMBuo3YrbxaiuoR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "53q9EY9gjTSqRjfzn", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 23:36:55"}
{"_id": "csvce7dtcvtuzSzcr", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts.position | p not in c.position.^next\n}", "derivationOf": "FhgxKtX9THuvtPKsv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-14 00:51:39"}
{"_id": "tfpoC3uexEDhiQkFt", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | c.parts.position = c.position\n}", "derivationOf": "bg46N5hCAzCubHzyy", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:03:47"}
{"_id": "mBptkQA9FBmNsP5yM", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "HFkcDKdcDeujRsDrv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 02:09:54"}
{"_id": "nLs4SwXpsJDyiEBew", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | c.parts.position = c.position\n}", "derivationOf": "ZTTKAy9iEzcWHKzDS", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 02:13:59"}
{"_id": "MJkt2DzcKYLbyAqF2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | always no (c.parts & c)  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "qKBS2yd3hEkkFhwJD", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:22:34"}
{"_id": "mD3xFxFAtPohWscKo", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c: Component | c.position.~position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "DjqiqDCDfSmiL4aMp", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Robot, this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:45:23"}
{"_id": "ociBQ8iJHM7bGqrhK", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position | all p : c.parts | p.position = pos \n}", "derivationOf": "gCyPJPFYSgRRuRMks", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:56:49"}
{"_id": "nJBaqnQMWATP42mzP", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | some r : Robot | p in c.position implies some Robot\n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PEjJbzQy4XGP9Aata", "msg": "This variable is unused.", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:13:00"}
{"_id": "bKTTTvLB6rWwFaemb", "cmd_i": 0, "code": "var sig File {}\nvar sig Trash in File {}\n\n\npred delete[f : File] { \n  f not in Trash\n  Trash' = Trash + f \n  File' = File\n}\n\n\npred restore[f : File] {  } \n\n\npred empty {   }\n\n\npred do_nothing {\n  Trash' = Trash\n  File' = File \n}\n\nfact behavior { \n  \n  no Trash\n  \n  always (\n    (some f: File | delete[f] or restore[f]) or empty or do_nothing\n  )\n}\n\nassert restoreAfterDelete {\n  \n  always (all f : File | restore[f] implies once delete[f])\n}\n\nassert deleteAll {\n  \n  \n  always ((File in Trash and empty) implies always no File)\n}", "derivationOf": "gqKijisz5qqo8kmZb", "msg": "The name \"Component\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-10-1 04:23:00"}
{"_id": "inyqJ5DiWEpvjNM6s", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-21 11:29:10"}
{"_id": "khtEQkeuTbGq7rxEY", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "LeQBhohseDduiQgp8", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:31"}
{"_id": "b4butKMAmMdS8Q8zq", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "eEWHQFwfAmfqNXbL7", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:04:32"}
{"_id": "3YEpipDicqw4dBMgz", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2BdGb8zh7EoBto4Fr", "msg": "The name \"c\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 12:34:08"}
{"_id": "dseFjHBoicphprgvN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "dskTzBbnZP8kvgvkv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:26:59"}
{"_id": "kRjREp7GFWs37db3N", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "inyqJ5DiWEpvjNM6s", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-21 11:30:00"}
{"_id": "hYNLKDhBtnMAjreYS", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | c.parts.position implies (after (c.position))\n}", "derivationOf": "dwRqvwqBZDxZ6kqkT", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-23 03:07:26"}
{"_id": "HP6H8Z7m3qKdTFtyT", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "5gT5JnG9iuqTssdng", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:17:17"}
{"_id": "yhEj5CLi7PoyNDf9A", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | r.position = c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "pnbSywBb2egSDGABa", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 16:08:39"}
{"_id": "93XedNo8gYkR9MGr6", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts not in c.^~next\n}", "derivationOf": "qEwGEKkFTKA7hMApv", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:09:20"}
{"_id": "P3C7tsQaFc2Rojge3", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component |  c.^parts not in (c.^next).^parts \n}", "derivationOf": "FQrSNkk4Q6nceY56E", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:51:17"}
{"_id": "guheshZRDhB5qXQk8", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 20:24:27"}
{"_id": "t5JS4Whwf9PC4jDWT", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component, d:c.parts | no (c & d)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CKAcCpG6kDKQ5t4PJ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:04:40"}
{"_id": "PBdH76wPWvs7fCA4S", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "DjxA3Bmec2PcYXi4m", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:47:45"}
{"_id": "yXHHkRrsLT6di6Wz6", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |some c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c:Component | c not in c.parts \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ho5k2n2oN8EMzPJ9N", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 18:59:02"}
{"_id": "4F4AR3qdxnKbCyYYB", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | some pos : c.position.prevs | p.position = pos", "derivationOf": "dxTzNkE4zAZmtCXox", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-7 19:41:57"}
{"_id": "CtEzSfoeiuvdzY7oL", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in (c.^parts)\n}\t\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r.Robot |  r.positon in c.position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Xc789CrRMZSEfXWav", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:19:02"}
{"_id": "gqK8Jukir4gxQMhF9", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c1,c2 : Component | always no (c1.parts & c2.parts)  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "65L88vPkivPhav7RD", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:23:40"}
{"_id": "kMMBBZmMDwhWLezFw", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:27:27"}
{"_id": "oJLPt3wcTuPMT4fjN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 15:07:22"}
{"_id": "JTKgjtbFPjHSXv4BF", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some p:Product | some c->p in parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7gopAbFbXPsRfmtqo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 00:39:55"}
{"_id": "oGLnoJqcMp9xbebh8", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : (c.parts & Component) | p.position not in nexts[c.position]\n}", "derivationOf": "Ld9rkbgpSPkjX5THx", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 09:39:25"}
{"_id": "5gT5JnG9iuqTssdng", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no(nexts[c.position] & c.parts.position)\n}", "derivationOf": "7TJb2xJEChWvELGjF", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:17:10"}
{"_id": "xDztjhzkNEy6RCnis", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (Component.*parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "YtgifHvJec8HRYKdB", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:52:11"}
{"_id": "auxMRuFAhoeZ3KAGf", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c.parts in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xMmYtBFgcsQCT6Bop", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Product}\nRight type = {univ->univ}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:32:08"}
{"_id": "uQzXZpZhuea5jkuQt", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-3-14 14:20:18"}
{"_id": "mzP3Eo2t3t3MJEqZ2", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | c.position < c1.position\n}", "derivationOf": "qkTrKozsnjET6L7zD", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:43:26"}
{"_id": "LcaEDj4GKagyLXJEc", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n  \n  \n  all c:Component | c.parts.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "fiZQ9Zc7D2c6qRtze", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-10 23:13:51"}
{"_id": "HjaRE53uTen3GW4CT", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | no (c.^parts).c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jEuWiH8ce9AdkbDo6", "msg": "This cannot be a legal relational join where\nleft hand side is c . ^ (this/Component <: parts) (type = {this/Product})\nright hand side is c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-2-15 21:56:45"}
{"_id": "JSrAcQgSMfcif9HKB", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 09:54:52"}
{"_id": "65L88vPkivPhav7RD", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall disj c : Component | always no (c.parts & c)  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "MJkt2DzcKYLbyAqF2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:23:00"}
{"_id": "Mi9yybKFMHRXo89pE", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(parts.c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "NegLr9xynWhzWgdeP", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is (this/Component <: parts) . c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:36:12"}
{"_id": "3jj6KrvD3yoBgQ8kg", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "GXyC7KhnT6kGtwzJp", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 21:52:14"}
{"_id": "qigwXZtriNfcmSNkQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | some pos : c.position.prevs | p.position = pos\n\n}", "derivationOf": "hG9Scf2YKSuBFHh5C", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-7 19:42:17"}
{"_id": "LAoxfGWn9mkPooxN5", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : c.parts | p not in nexts[p.position] \n}", "derivationOf": "pnek6dMRAWz4mrgKp", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 18:51:34"}
{"_id": "DaFxDNy8BZP88SAE9", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | no position.p.*parts & position.(p.^next).*parts\n}", "derivationOf": "TxyfdmTPQDmgBy2K7", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:17:10"}
{"_id": "b4iqp5PBXb6q8N64D", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "tQocx5E74iXHvL4Ln", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:35"}
{"_id": "PKmm8wrYmCLM9Jt2b", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c.^parts & c not in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "eWYd5KydoLHvGZXJh", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component}\nRight type = {this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:49:57"}
{"_id": "uc4xFQaqqSjovRpdx", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  iden & Component->Robot in (Component:>(position.~position)).~(Component:>(position.~position))\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "zjgXvbcSJK5pvg7WA", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Robot, this/Robot->this/Component, this/Component->this/Robot, this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:44:11"}
{"_id": "X33ZqzuK5rk4EhhyH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prevs[Component.position]\n}", "derivationOf": "B3hjLNu83Gi8X63Gh", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 19:02:49"}
{"_id": "tMBLDhtK8Y3Mo2x47", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts.position | p not in c.position.^next\n}", "derivationOf": "uTJaHDuQrpgmnwrZh", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-14 00:51:44"}
{"_id": "r2BLPcaXvm4trtHWw", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno iden & Component <: parts :> Component\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "cuGG3KaZPxNy3725K", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:26:35"}
{"_id": "NaTiH7ddYEv2n8jrx", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position).~position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "wigsoE4R2aWBydEAq", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:45:52"}
{"_id": "puLKmmcSYHd8qXznn", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.^parts.position in prevs[c.parts.position] + c.position\n}", "derivationOf": "TncbWnJ7cBQvizZAX", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:56:14"}
{"_id": "SrWEeBTd66nAxjSaC", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | all p:(c.position) | some r:Robot | r.position in p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "FZ7nkzqEqGC4PrxpR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-9 04:45:02"}
{"_id": "M6WNPdMiHBpycXfSf", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3ea8FLvy8b3ZtTbJZ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 14:16:35"}
{"_id": "2dFDBQ3uqKjN2eFWy", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "wwzJrkZCmAt6Go3ra", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:31:45"}
{"_id": "FZ7nkzqEqGC4PrxpR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yrEa4shyBtRWwsPE9", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-9 04:41:00"}
{"_id": "6eyKCT7wehDbdbaGj", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "njFA9mHMqqeB3w6Th", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:43:33"}
{"_id": "WB5JgCr5v24TZnKED", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | p in Component implies c.position in p.position.*next \n}", "derivationOf": "TnkSogb4zJiafshQz", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 16:51:55"}
{"_id": "w8tqGbJ5S4YZBEkTZ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3XAHaZcanTLqWeDsc", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 20:23:48"}
{"_id": "fNDB44G9u9nxxR4mA", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall c:Component | c.parts.position in c.^~position\n}", "derivationOf": "WGWRLPc3amRToACaP", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 19:45:56"}
{"_id": "yX4d557GAzy2gk2sA", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.parts.position\n}", "derivationOf": "J7we3FGLoLEDgPQ4s", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:40:11"}
{"_id": "oGLJZyRtX7aCdtuc5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yjtP33rCz5xKaABSy", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-7 19:26:36"}
{"_id": "nzDHZMhwjiDWTevva", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.parts).position not in (c.position).^~next\n}", "derivationOf": "WnBXGzka33YPTeBS4", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:10:12"}
{"_id": "JavwCfjMWtpkLgrrD", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tRobot = position.(Component.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kyMYojKi6mxF7SMMM", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-12 20:21:37"}
{"_id": "CwTYp8DekefvnBhiJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\nall p : Position | some position.p & Component implies some position.p & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "5QtmQi78DCNyTrgBi", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-21 11:34:18"}
{"_id": "DSPospR2YPFRwFSur", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "GDmbKBwtp7ppGBtiW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:46:47"}
{"_id": "fteZsWLEzLHdCKZos", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | p.position not in nexts[c.position]\n}", "derivationOf": "Wr7zznHcL2y6EJ39t", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 09:10:27"}
{"_id": "HXXfLY88SuaGxwiCQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.^parts) & Component).position not in (c.position).^next or no c.^parts\n}", "derivationOf": "CCgRd456bPqco4vC8", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:58:41"}
{"_id": "HfyHmaaZLMMoREbtN", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->parts->c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "zwWjzde3mBJEEdPyv", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:41:17"}
{"_id": "ioGJNuZdfj6QotH6E", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.^parts) & Component).position not in (c.position).^next or no (c.^parts & Component)\n}", "derivationOf": "HXXfLY88SuaGxwiCQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:59:23"}
{"_id": "DsJWGznkxKn82RCMt", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "gvqYcMKk7hraiuApq", "msg": "This variable is unused.", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 11:15:31"}
{"_id": "XXtP59jThbfWjcjWZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\none parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-17 11:16:58"}
{"_id": "uTY4DgATwuio34oCT", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no ^parts & iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3PZYmioMsCF8fNMoH", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:28:33"}
{"_id": "MpXvMJ9TKp5WxqACT", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "NwispHFPjFwXzqL3h", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:47:14"}
{"_id": "ZBuiuzQ8E7oEGpLca", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "w4RsQtLP2BeHHge56", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 23:08:56"}
{"_id": "WntcuWrmekmpjZ98i", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : (c.parts & Component) | p.position not in nexts[c.position] \n  \t\n}", "derivationOf": "zkNA7EbJezAcoTHad", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Component": {"x": 1003.9955357142857, "y": 132.66666666666666}, "Position0": {"x": 585.6640625, "y": 265.3333333333333}, "Position1": {"x": 292.83203125, "y": 265.3333333333333}, "Position2": {"x": 167.33258928571433, "y": 132.66666666666666}, "Product": {"x": 878.49609375, "y": 265.3333333333333}, "Resource": {"x": 501.9977678571429, "y": 132.66666666666666}, "Robot0": {"x": 836.6629464285714, "y": 132.66666666666666}, "Robot1": {"x": 669.3303571428571, "y": 132.66666666666666}, "ShouldBeAccepted": {"x": 334.66517857142856, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2021-1-9 18:55:07"}
{"_id": "7uG7wnZyQrmXZqrpk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.position.gte[c.^parts.position]\n}", "derivationOf": "Aw37dChLRiXJvktbZ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:57:12"}
{"_id": "Ryj5r5ckDYBCmF86y", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 23:08:07"}
{"_id": "Nc6rBGbJRWcFSpGY8", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c : Component | c not in (c.parts).^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uEW4ahiiCCCruXkyt", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 22:37:27"}
{"_id": "dt2cwK8EXfRae75hd", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "weC7LdcoNZXMiqpij", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:43:46"}
{"_id": "LRYyuskpzyztwRf7b", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some p.c implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "m3bi6dDH2dnWARWAF", "msg": "This cannot be a legal relational join where\nleft hand side is p (type = {this/Position})\nright hand side is c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:41:57"}
{"_id": "hD6mo63CSKcvM4ukp", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | (c.^parts).c not in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PKmm8wrYmCLM9Jt2b", "msg": "This cannot be a legal relational join where\nleft hand side is c . ^ (this/Component <: parts) (type = {this/Product})\nright hand side is c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:50:09"}
{"_id": "JAyAxW65vXCjfg8JJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | c not in c.*parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BXwuJiGfP4XpSHe2r", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:40:01"}
{"_id": "CZYN6heNWGmTAmRt2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in c.parts:>Component\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c:Component | some r:Robot | c.position in r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2RW89erRq8CCR6WBn", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:17:26"}
{"_id": "sybArdAAnmr2n62D2", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |some c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "S76cYd52bJa8WFafr", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 18:55:34"}
{"_id": "FhgxKtX9THuvtPKsv", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts.position | p not in c.position.^next\n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-14 00:51:35"}
{"_id": "EcJg47duab6ocDrfA", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | c.position < c.prevs.position\n}", "derivationOf": "bKKzD54p6nyYCPkNt", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:44:29"}
{"_id": "TxyfdmTPQDmgBy2K7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | no position.p.parts & position.(p.^next).parts\n}", "derivationOf": "op5tBELooAkQgzru3", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:13:27"}
{"_id": "m36ccebGfxg2pghpX", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ukdcdYrMM2PA6fgwJ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:44:00"}
{"_id": "Btj7etNccuofh3w3H", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position | all p : c.parts | p.position.lte[pos]\n}", "derivationOf": "GuwTbRc3YDvSaHyYx", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:58:02"}
{"_id": "9jSdydbpZgo4d49i4", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some ((c.position) && Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "hNWBvzEX56h7WoHym", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 14:19:37"}
{"_id": "cc4MEtbzMPJd3cuie", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  some (position.(c.position) & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  all c:Component | c.parts in (c.position.~^next)\n}", "derivationOf": "NJFjkMBmscrfwPgzj", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 23:17:21"}
{"_id": "nhbwzuJMeCzF4Aai7", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-14 11:08:27"}
{"_id": "7nEm9wTDaEPa6StY8", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uAyRbo7iMESTvxnQj", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 20:19:55"}
{"_id": "L5jj3wKuncFNzbTRr", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno Component.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "KcrzctsroJaou8KaS", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:51:15"}
{"_id": "Yt5NGWsNQ2eRB9EL4", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position<:(Robot->Position))(.c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7tJHH6qtqebEfMDJ3", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:39:51"}
{"_id": "fq2Sxo443NoNpnzpx", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:34:19"}
{"_id": "XiyWRsh7ok6skXWRZ", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.^parts) \n}", "derivationOf": "ryzXti8Ao8aNFJewi", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:51:05"}
{"_id": "dbKZg3a63svPMxg7f", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "GwNoKgoMirSgWQ2Q2", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:37:26"}
{"_id": "78rCdc2Gr3kABGwxs", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-2-15 21:51:51"}
{"_id": "qkTrKozsnjET6L7zD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ESoNWhhtHrm5tBy76", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:40:51"}
{"_id": "TB8kh44erYpMLeYgs", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in (c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Ppjfi8gCoqmTrKQGj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-2-15 21:59:52"}
{"_id": "qEwGEKkFTKA7hMApv", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts in c.^~next\n}", "derivationOf": "izmvrHsgvhJo7G3yt", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:09:08"}
{"_id": "jEuWiH8ce9AdkbDo6", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "96SQyQDC2SqzR2yqm", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-2-15 21:55:06"}
{"_id": "bzRdbBX4h2WnaKGm5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-16 04:19:00"}
{"_id": "nYh8F2qZwm3QGpcQ6", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position) & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\nall c : Component | all x: c.parts & Component | x.position not in c.position.nexts\n}", "derivationOf": "bZjsgNesEFzQqjRur", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-21 11:41:16"}
{"_id": "bADLekdn9XakM5kBm", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7pQQENmHhN8JrtaHv", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:05:00"}
{"_id": "xTxtuJFWq48DGuYFy", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | p in c.position\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ujs425sK6qaQk8gR5", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:10:24"}
{"_id": "8nqxyypbuXAtoagmd", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | c.position > p.position\n}", "derivationOf": "aYAxhv838QDSfpYDo", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:48:34"}
{"_id": "wigsoE4R2aWBydEAq", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position).Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "GAnXeo2x7nLZYnsuq", "msg": "This cannot be a legal relational join where\nleft hand side is <c . (this/Component <: position);c . (this/Robot <: position);> (type = {this/Position})\nright hand side is this/Robot (type = {this/Robot})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:45:38"}
{"_id": "pTR85nLB3Wcacb5v9", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "sit9tYYD5MgksxSYp", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-9 04:32:24"}
{"_id": "myYzDvP8z9J3wJw7F", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CZA4YJ6sMwSgjTg8e", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:46:33"}
{"_id": "nwutMh3PGNcpvkriH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | p in c.position.prevs.parts\n}", "derivationOf": "X4j93xkLtMSYgaHtM", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Position}\nRight type = {this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-7 19:36:03"}
{"_id": "zkNA7EbJezAcoTHad", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : (c.parts & Component) | p.position not in nexts[c.position] \n  \t\n}", "derivationOf": "kaMWrXdZ2sg7vWmCL", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 18:53:46"}
{"_id": "g7th2YjHsCDQXve5H", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "8nEC9KDKra7xZ3yQR", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:14:46"}
{"_id": "weC7LdcoNZXMiqpij", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6eyKCT7wehDbdbaGj", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:43:42"}
{"_id": "eMpZGCowbmwbTScDT", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component |  c.^parts not in c.^next.^parts \n}", "derivationOf": "BHdCKsNhTJ8W6qCmp", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:49:24"}
{"_id": "CCoE2ncmAuBSmeuYL", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "zeTNT8LdckiqftdAE", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 19:41:42"}
{"_id": "CCgRd456bPqco4vC8", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.^parts) & Component).position not in (c.position).^next\n}", "derivationOf": "PFJgZTTRRLNeEubq5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:56:48"}
{"_id": "4FawfKYue6j9QMR8n", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position in c.position.~^next\n}", "derivationOf": "aEwWP7CTwPS7BcSW7", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:52:51"}
{"_id": "udF3wnmBYYonNzx4v", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c->c not in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "zHxsHSNvgPcqnK6Ao", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:48:07"}
{"_id": "7Z7wyiRNhunA9tMRg", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oJLPt3wcTuPMT4fjN", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 15:08:52"}
{"_id": "JwyGckHYX6sc2ungQ", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CwTYp8DekefvnBhiJ", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-21 11:35:25"}
{"_id": "MzLamobMi3pjoEnr4", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some Robot.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Hj6ZP7itg7DBLP9TN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:05:14"}
{"_id": "SyvKgFQfuinD52xFR", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts(c.^position.~^next)\n}", "derivationOf": "g483cTWFyfLtC2mPb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:38:29"}
{"_id": "ypuMQiFrfPDfpChKA", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2020-5-24 14:43:53"}
{"_id": "mJRpFxYFrB6BfHH6F", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "4bxK7XAK78gDNBgNe", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:26:12"}
{"_id": "kyMYojKi6mxF7SMMM", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tRobot in position.(Component.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7nEm9wTDaEPa6StY8", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-12 20:20:55"}
{"_id": "mzGW5wvwimXczjpkx", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "W6oHwdggaEKonZhTC", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:29:00"}
{"_id": "NmTaN9TG4u6LKfDvx", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | position.p.^parts not in position.(p.^next).^parts\n}", "derivationOf": "yAtB7wQdzFSiBQP3X", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 17:55:40"}
{"_id": "zziKDgMCHKrfAn6ci", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | r.position = c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | all p:c.parts | p not in c.^parts\n}", "derivationOf": "yhEj5CLi7PoyNDf9A", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:41:29"}
{"_id": "HJzNwiesNXnwX5FAQ", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n   \tall c:Component | some c->p:Product in parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JTKgjtbFPjHSXv4BF", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 00:41:17"}
{"_id": "YfuLA9Eabb8yk4C3c", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component |  no ((c.position)- (c.parts).position)\n}", "derivationOf": "gpeaoX2J3GtXEGyPv", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-14 00:01:25"}
{"_id": "YTd3Bp5GHRC4vwo2K", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oiAAQXWfwDgqFfuoQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-22 11:03:34"}
{"_id": "urGHx7juRP2Y5SkiR", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | no ^(c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "HjaRE53uTen3GW4CT", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-2-15 21:57:09"}
{"_id": "yZdvLHTeHfgtWYna9", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in ^(c.parts)\n}\t\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "D33uQTeHmi7wKv6uD", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:15:27"}
{"_id": "YMphTMypzRZrz23jw", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kQSqJzuJKtw4FRC4N", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 15:54:02"}
{"_id": "P9QFpmsZgPnnY6a34", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position, p : c.parts | p.position.lte[pos]\n}", "derivationOf": "XmM6ZivxLPbtsC4fq", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:58:26"}
{"_id": "ySavkLBfc4dLJLrqg", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c,c1 : Component, p : Position | c not in c->parts and c1 not in c1->parts and c->p + c1->p in position => c = c1 \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7Kke6FdwCC6iT7qky", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component}\nRight type = {this/Component->this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:19:24"}
{"_id": "bZjsgNesEFzQqjRur", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position) & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\nall c : Component | all x: c.parts | x.position not in c.position.nexts\n}", "derivationOf": "LcHDdTCSg6sY5SYYh", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-21 11:39:25"}
{"_id": "e6fgXgYJyAaDkreiC", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no ^parts & iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position + c.position.prevs\n}", "derivationOf": "r8BPJPq7X7ddXdiqg", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:34:20"}
{"_id": "BS78i226roaArpT9M", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n  \tsome r:Robot | Component.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yMxiATrfELowQRAJ7", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:06:14"}
{"_id": "pzD4MhKhndmWku6Yp", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts not in iden - {}\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "fBGXwvF8gzHyvaDni", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {univ->univ}\nRight type = {PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:37:28"}
{"_id": "gzmDmvFy76TQAeHfY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "YeKMqexTEY8EEYg42", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:12"}
{"_id": "NNgcJonp3wxmX3YXE", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-23 15:40:44"}
{"_id": "3XAHaZcanTLqWeDsc", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uwKg7ho2f5kxGJiuL", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-12 20:23:33"}
{"_id": "A3qZHj8ebCKdDiDMZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "pSyMM24F58rXY7Luq", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 19:21:27"}
{"_id": "2hmmajfM7z3Ypqjsu", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "sdkc22bCHCr5Sdpfg", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-14 11:20:59"}
{"_id": "dskTzBbnZP8kvgvkv", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "xNheqdyvRKhbuQoHs", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 14:26:56"}
{"_id": "oyJANrNXx79PvyB4Z", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | no c.^(parts.parts).c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "bwjHvcr3szTXYtnQg", "msg": "This cannot be a legal relational join where\nleft hand side is c . ^ (this/Component <: parts) . (this/Component <: parts) (type = {this/Product})\nright hand side is c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 11:16:32"}
{"_id": "SLoyYGcuKBBwPT5L8", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.^parts).position in c.position.prevs + c.position\n}", "derivationOf": "Mwncyj4ReKjBpSE8C", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Component": {"x": 1026.84375, "y": 132.66666666666666}, "Position0": {"x": 598.9921875, "y": 265.3333333333333}, "Position1": {"x": 299.49609375, "y": 265.3333333333333}, "Position2": {"x": 171.140625, "y": 132.66666666666666}, "Product": {"x": 898.48828125, "y": 265.3333333333333}, "Resource": {"x": 513.421875, "y": 132.66666666666666}, "Robot0": {"x": 855.703125, "y": 132.66666666666666}, "Robot1": {"x": 684.5625, "y": 132.66666666666666}, "ShouldBeAccepted": {"x": 342.28125, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2021-1-12 21:47:24"}
{"_id": "aFwdaS3KnpdgpL6Aw", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "tZfX6WagvxwYrQEFB", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:16:13"}
{"_id": "f8eNqbES83mNemabL", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n  \tComponent.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BS78i226roaArpT9M", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-22 11:06:49"}
{"_id": "uJDkG4ft6x89r6b66", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->parts->c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jNhKLMEz5W7KiCyFk", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:40:50"}
{"_id": "WRKvCwukbS24y44yF", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in c.parts:>Component\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "4Ey6n4JphxDLiaDT2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:13:20"}
{"_id": "3sJNrHa3SW699h6HR", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c<:parts) & (parts<:c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "frz4thF9bHj3Qa48i", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:34:42"}
{"_id": "ov9DfaEBdzo9PThyg", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kMMBBZmMDwhWLezFw", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-9 04:28:22"}
{"_id": "LwCKmZQTc55YtFnyG", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | (c.parts & Component).position = c.position\n}", "derivationOf": "hYNLKDhBtnMAjreYS", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:08:39"}
{"_id": "sHydaQmH9WvuzmhSZ", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position).Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "NaTiH7ddYEv2n8jrx", "msg": "This cannot be a legal relational join where\nleft hand side is <c . (this/Component <: position);c . (this/Robot <: position);> (type = {this/Position})\nright hand side is this/Robot (type = {this/Robot})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:46:15"}
{"_id": "WGWRLPc3amRToACaP", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \t\n  \tall c:Component | c.parts.position not in c.position.^next\n}", "derivationOf": "E5saYuEgsKLJn9BLi", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 19:44:18"}
{"_id": "yyJAyqyvrsMmj3g7T", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no c & c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "A6sCr78iJD5XK4Wzz", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:35:54"}
{"_id": "rhvRsNzkfHYwpYJbQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Zh3N4vbiDxWsbWapv", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 14:21:17"}
{"_id": "dwRqvwqBZDxZ6kqkT", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | (c.parts & Component).position = c.position\n}", "derivationOf": "tfpoC3uexEDhiQkFt", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:04:49"}
{"_id": "xctf9WMsHufP3x5fy", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  some (position.(c.position) & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | no((c.^parts & Resource).position  & c.position.^next) \n    \n  \n\n}", "derivationOf": "nfurBpRvy3qXm8yda", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {none}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 23:26:56"}
{"_id": "yjtP33rCz5xKaABSy", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some s.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "The name \"s\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-7 19:26:31"}
{"_id": "3jN99skFYsnQkS8wz", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts and (Component + Resources) in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "53QK43YpXqA56KRtp", "msg": "The name \"Resources\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:21:15"}
{"_id": "3PvB3HzuZthF6A3zE", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position:>Position).(c.(Component:>position))\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6smad8Mz4hrovRKfp", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Position, this/Component->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:42:32"}
{"_id": "cFYqCzpqrSiTFCHLd", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | c not in c.^parts \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "e2mJGdRxFwkbJEFGZ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:37:07"}
{"_id": "yMxiATrfELowQRAJ7", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6wTbqmTTywQ8wBwSM", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-22 11:05:32"}
{"_id": "r8BPJPq7X7ddXdiqg", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no ^parts & iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.positon + c.position.prevs\n}", "derivationOf": "uTY4DgATwuio34oCT", "msg": "The name \"positon\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:34:14"}
{"_id": "3v2Jju2DATpi8ysYr", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position = Robot.position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "YTd3Bp5GHRC4vwo2K", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:04:43"}
{"_id": "bg46N5hCAzCubHzyy", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | Robot->(c.parts.position) in position\n}", "derivationOf": "nLs4SwXpsJDyiEBew", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 02:17:20"}
{"_id": "GAnXeo2x7nLZYnsuq", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position) \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "nga8Cnb7rHFjDEnZF", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:45:15"}
{"_id": "wxB2WzHnLzJLPgNsp", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tsome Component.postion\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "iSDBhcXgRMdYi9B6C", "msg": "The name \"postion\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 21:20:13"}
{"_id": "voj2brSDa5wXea4G7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall p : Position | no position.p.parts & position.(p.^next).parts \n}", "derivationOf": "myCFsSuFXN28B5evb", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:23:31"}
{"_id": "mNYZtKDiHF6acnQPQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c,c1 : Component, p : Position | (c not in c.parts) and (c1 not in c1.parts) and c->p + c1->p in position => c = c1 \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TrH5gaddceQhGLtKZ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:19:52"}
{"_id": "gqKijisz5qqo8kmZb", "cmd_i": 0, "code": "var sig File {}\nvar sig Trash in File {}\n\n\npred delete[f : File] { \n  f not in Trash\n  Trash' = Trash + f \n  File' = File\n}\n\n\npred restore[f : File] { ... } \n\n\npred empty { ... }\n\n\npred do_nothing {\n  Trash' = Trash\n  File' = File \n}\n\nfact behavior { \n  \n  no Trash\n  \n  always (\n    (some f: File | delete[f] or restore[f]) or empty or do_nothing\n  )\n}\n\nassert restoreAfterDelete {\n  \n  always (all f : File | restore[f] implies once delete[f])\n}\n\nassert deleteAll {\n  \n  \n  always ((File in Trash and empty) implies always no File)\n}", "derivationOf": "jyS8Bmceejj9pLbTW", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-10-1 04:22:34"}
{"_id": "ZY9SDTjjackPvjqk7", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tiden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TmEZktdAemuXFCbrM", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-14 11:25:06"}
{"_id": "Wr7zznHcL2y6EJ39t", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | p not in nexts[c]\n}", "derivationOf": "jyS8Bmceejj9pLbTW", "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 fun integer/nexts.\nThe parameters are\n  e: {Int}\nso the arguments cannot be\n  c (type = {this/Component})\n\nThis cannot be a correct call to fun ordering/nexts.\nThe parameters are\n  e: {this/Position}\nso the arguments cannot be\n  c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-19 09:10:07"}
{"_id": "kgA7B4zbbWXrwqQFv", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.^parts.position in (prevs[c.parts.position] + c.position)\n}", "derivationOf": "puLKmmcSYHd8qXznn", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:56:25"}
{"_id": "55YQ69zSobG7oHKB5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Product->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yMDAakmwS4dQS3Ltj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:25:39"}
{"_id": "Em9f77XBiCboJKNaT", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | no (c.parts & c.position.~^next) \n}", "derivationOf": "xJj83T8obqsCs6mRf", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:47:20"}
{"_id": "AJTfHSAm4baXeeWTW", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | no (c.parts & c.parts.position.~^next)\n}", "derivationOf": "Em9f77XBiCboJKNaT", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:48:25"}
{"_id": "5AiC2meFP47w7XtKL", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | (c.parts) in (c.parts - c) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Ygoe9umJ8H4K3D7h8", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:34:07"}
{"_id": "BJg7wF28L6ZigdFPP", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "qNriMrMKpfJDZE5Fv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 23:48:07"}
{"_id": "mcAnXW9mmzE9KzhL3", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "q2m366u8rN7rmvGrT", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 22:34:05"}
{"_id": "A5o76xd3vHTpG3mZr", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tsome Component.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CfL2bYBR4CymW945h", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:20:44"}
{"_id": "FDhCLJM5ibXSpcvgN", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p <: Component).parts & (position.(p.^next) <: Component).*parts\n}", "derivationOf": "MtpYNtjGXiXzEQBDH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:30:22"}
{"_id": "t4MY45FWpt7KMR2pJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | not (some pos: c.position.^next | p.position = pos)\n\n}", "derivationOf": "qigwXZtriNfcmSNkQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-7 19:44:23"}
{"_id": "PPe4TE573KE54Wsk5", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ibpDZBbZwydDmB7j2", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 09:55:56"}
{"_id": "txmhMvNBBX394CrgR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\t\n}", "derivationOf": "DJrzfRMnsNTZ8KHNe", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:45:59"}
{"_id": "BX5PptcEzCCjghDMN", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno *prev[Component]\n}", "derivationOf": "CH2X32h86xyS6bzwE", "msg": "This name is ambiguous due to multiple matches:\nfun integer/prev\nfun ordering/prev", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:33:39"}
{"_id": "dZicaWP2bjgQQJzja", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | ((c.parts & Component).position = c.position) or no (c.parts & Component)\n}", "derivationOf": "LwCKmZQTc55YtFnyG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:10:16"}
{"_id": "PFJgZTTRRLNeEubq5", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.^parts) & Component).position not in (c.position).*next\n}", "derivationOf": "c4DjWbiXdgM2rwjwa", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:56:25"}
{"_id": "L3SLpCit3XuKfFSar", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Ad5v74StZCEbxDfWa", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:32:27"}
{"_id": "9ZnhrcdQRn3kzBDqj", "cmd_i": 3, "code": "// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : (c.parts & Component) | p.position not in nexts[c.position] \n  \t\n}", "derivationOf": "zkNA7EbJezAcoTHad", "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 fun integer/nexts.\nThe parameters are\n  e: {Int}\nso the arguments cannot be\n  <c . (this/Component <: position);c . (this/Robot <: position);> (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 18:56:02"}
{"_id": "MwfFjhaPoPqNhykC7", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position<:Robot)(.c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "d5sQywKQL4LyZxumS", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:39:23"}
{"_id": "PESZmyA7ix4RxCNGr", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "A3qZHj8ebCKdDiDMZ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 19:21:29"}
{"_id": "owbApsK5GHnqbw4qn", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | smaller[c.position, c1.position : Position]\n}", "derivationOf": "5oRk7rYdZkjKnbr7w", "msg": "There are 1 possible tokens that can appear here:\n]", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:50:43"}
{"_id": "nfurBpRvy3qXm8yda", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  some (position.(c.position) & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n    all c:Component | c.position not in c.position.^next\n\n}", "derivationOf": "cc4MEtbzMPJd3cuie", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 23:17:42"}
{"_id": "3PZYmioMsCF8fNMoH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no ^parts & iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "KAHYvHxNqPpCFounD", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:27:48"}
{"_id": "ef4gWiJqbsax2SC23", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component<:parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "63gDq3Gxdgd2pEMkp", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 20:25:11"}
{"_id": "ryzXti8Ao8aNFJewi", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.^parts).position  \n}", "derivationOf": "BJg7wF28L6ZigdFPP", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:50:52"}
{"_id": "9u2HA4oXv3hDFv3Bh", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xztvQbou2v7Q7LPFf", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:38:48"}
{"_id": "ybqGwLepgzLLvMZdy", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\t\n}", "derivationOf": "txmhMvNBBX394CrgR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:46:01"}
{"_id": "TnkSogb4zJiafshQz", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | p in Component implies c.position in p.position.nexts \n}", "derivationOf": "8nqxyypbuXAtoagmd", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:50:52"}
{"_id": "pgfnSZwRpsryCyTGB", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "x45tuPxpMLGzgaWL5", "msg": "This variable is unused.", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:01:34"}
{"_id": "PkT3ZqsgcwA9WZ5F4", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "FemRTPXBSRSvanEL9", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:00:20"}
{"_id": "9kh9BCX2dBkPu5hMo", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "bvrxRWao2nmaEQy3o", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 18:43:34"}
{"_id": "7AejaMK2skZz9unGS", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position.prevs + c.position\n}", "derivationOf": "cPoXR4sz428SCE82v", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:56:13"}
{"_id": "Rn99dHMg5CpptSxNi", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yfDjGcqfDjYchtiJk", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 21:32:04"}
{"_id": "JHFTSKohRPCAhdNyx", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\t\n}", "derivationOf": "ybqGwLepgzLLvMZdy", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:46:02"}
{"_id": "DjqiqDCDfSmiL4aMp", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  iden & Component->Robot in (Component:>(position.~position)).~(Component:>(position.~position))\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uc4xFQaqqSjovRpdx", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Robot, this/Robot->this/Component, this/Component->this/Robot, this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:44:19"}
{"_id": "7drCcMLC3TuPW9aHc", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\n}", "derivationOf": "yX4d557GAzy2gk2sA", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:42:16"}
{"_id": "ibpDZBbZwydDmB7j2", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in ^c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PK6AhRiBjvfANtR6q", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 09:55:11"}
{"_id": "e8HfMFaC4hcXNsz5K", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c<:parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "h6hqZcBZrbjwxLR2M", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:33:16"}
{"_id": "gAMFjdjyJpz5oGHxN", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall c:Component | c.parts.position in c.position.*prev\n}", "derivationOf": "64CJuefBsCnW6Xkua", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 19:48:00"}
{"_id": "3oovkC58JwJhtdiiA", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component| always c.parts.position in prevs[c.position] + c.position\n}", "derivationOf": "BWyKiaLAcPKZRAfY7", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 21:39:34"}
{"_id": "CMBHWfFuDp3t9pBbb", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  iden not in ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "dbKZg3a63svPMxg7f", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:38:49"}
{"_id": "6KiGhDakY9GPNkNfH", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "L3SLpCit3XuKfFSar", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:33:48"}
{"_id": "dxTzNkE4zAZmtCXox", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | some pos : c.position.prevs | p.position = pos", "derivationOf": "nwutMh3PGNcpvkriH", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-7 19:41:42"}
{"_id": "tobywsWJ5n75KqeyH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | c.position.lt[c1.position]\n}", "derivationOf": "L3mEzuutJTsCQQT2E", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:52:36"}
{"_id": "S3FXrwFG55THu37DA", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "K3qHfbt6i729gQbXM", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 15:08:06"}
{"_id": "bvrxRWao2nmaEQy3o", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | lone (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 18:43:21"}
{"_id": "D8ouoifQi8jc633u8", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "KyFhxYPaLpYCTxMb4", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 23:43:19"}
{"_id": "xefrgpY75k62H3PsJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xz2kL54dvjfpQQz4W", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 21:03:32"}
{"_id": "T8CWgWkkZMgX3sPaK", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component implies some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 21:04:29"}
{"_id": "Ee4N65Xv3Y9oFTqBw", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "QjnWNw3A9pCEyHWj7", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:10:02"}
{"_id": "7Br7Drj6hyh5ARZ3K", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kRjREp7GFWs37db3N", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-21 11:30:50"}
{"_id": "7Ys7p3nax5dwkepTw", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Q4DmcMETqGEuirLTM", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:40:08"}
{"_id": "NThLPvhcekneJ3yq7", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6Eu2BeK7umYw3LpFg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:33:20"}
{"_id": "fBGXwvF8gzHyvaDni", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  *parts not in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "w8eNS4QxeNCrMk7vG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:37:16"}
{"_id": "AT2d6FWXQJDXwN9Fs", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "cepGWJQq4FXCqaPok", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-11-10 22:20:00"}
{"_id": "LcHDdTCSg6sY5SYYh", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position) & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JwyGckHYX6sc2ungQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-21 11:35:41"}
{"_id": "G3xRS3SxkPwwJt6b9", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-6-10 09:00:04"}
{"_id": "ee5opGEkPTaa4NuSB", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "HP6H8Z7m3qKdTFtyT", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:07"}
{"_id": "GDmbKBwtp7ppGBtiW", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "myYzDvP8z9J3wJw7F", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:46:40"}
{"_id": "pnbSywBb2egSDGABa", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | r.Component = c.Component\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "B33RNomyZtmQS2Y2m", "msg": "This cannot be a legal relational join where\nleft hand side is r (type = {this/Robot})\nright hand side is this/Component (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:08:15"}
{"_id": "BNNBZxvtavNtMGzgj", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ko4YZD2uc9ygeaM5E", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 15:07:49"}
{"_id": "MBWWrDBw488gqgFrB", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "g7jDjLDkRc9GhRdH5", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:11:48"}
{"_id": "myCFsSuFXN28B5evb", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | no position.p.parts & position.(p.^next).parts \n}", "derivationOf": "xKYB8s3pfBrQ5e5aF", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:17:44"}
{"_id": "eEWHQFwfAmfqNXbL7", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TFg8MXgdQNavBTp4b", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:04:24"}
{"_id": "Hj6ZP7itg7DBLP9TN", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component| c.position = Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "zewRCixDGaoyJ82pX", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:04:35"}
{"_id": "ZwN5a8zq3X79rrL9D", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c<:(parts.c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Mi9yybKFMHRXo89pE", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:36:17"}
{"_id": "938qSMHdLq7tge3vP", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c: Component, r: Robot | one c.position & r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "FqTTA5siDsadcRR2Z", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:46:40"}
{"_id": "kG6tJJCywwK2QKbkM", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | Robot.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "MzLamobMi3pjoEnr4", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:05:25"}
{"_id": "DYaF5egkjomaMQEpd", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.^parts).position  \n}", "derivationOf": "XiyWRsh7ok6skXWRZ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:51:14"}
{"_id": "rLh3pBTeXoqGTesgH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  (^parts).~(^parts) not in iden \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "diwzrCu33RT7tYJ4M", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:39:26"}
{"_id": "J5Qpzr7RgaaGz6L97", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ESknsQ2AZZG4nCsCp", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:42:06"}
{"_id": "nga8Cnb7rHFjDEnZF", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some Robot.(c.position) \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3BcNeRkK5ajJqshfA", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a legal relational join where\nleft hand side is this/Robot (type = {this/Robot})\nright hand side is c . (this/Component <: position) (type = {this/Position})\n\nThis cannot be a legal relational join where\nleft hand side is this/Robot (type = {this/Robot})\nright hand side is c . (this/Robot <: position) (type = {none})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:45:01"}
{"_id": "s7XgGfhSsbQWtGjat", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position).~position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "P9Z3WxurmjqoBx5xg", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:02:32"}
{"_id": "o2vvJBSYSBwFG93da", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some c.parts\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 11:00:56"}
{"_id": "eWYd5KydoLHvGZXJh", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c & ^parts<:c not in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "AxMFjo4i4RqePHpWh", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:49:42"}
{"_id": "Q97SqaZhLvtTXE9SX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prevs[Component.position.next]\n}", "derivationOf": "DGb5MHA9C6dv3mhcF", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 19:08:59"}
{"_id": "SKfJgGegt4cQYAco7", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | some r:Robot | c.p in position implies r.p in Position  \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "YMphTMypzRZrz23jw", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 15:58:19"}
{"_id": "Ec5Yr5FvSoXv8JLfM", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts  not in c.position.next\n}", "derivationOf": "GaGNnbH2sAGznx9dg", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:10:50"}
{"_id": "2BdGb8zh7EoBto4Fr", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6KiGhDakY9GPNkNfH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:34:02"}
{"_id": "5oRk7rYdZkjKnbr7w", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | smaller[c.position, c1.position :Position]\n}", "derivationOf": "ALmraGJAmiGRYXB43", "msg": "There are 1 possible tokens that can appear here:\n]", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:50:36"}
{"_id": "HDwKT6ib3tKs8y4dj", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.position) = (c.^parts).position\n}", "derivationOf": "sCt5pgSMoEaNJLmdg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:58:37"}
{"_id": "KuGGzmSd23DBci2Pe", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c:Component | some r:Robot | c.position in r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p1,p2:Position | (Component.p1).parts not in (Component.p2).parts\n}", "derivationOf": "CZYN6heNWGmTAmRt2", "msg": "This cannot be a legal relational join where\nleft hand side is this/Component (type = {this/Component})\nright hand side is p1 (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 21:24:53"}
{"_id": "aMSBGnpkz5zedASMF", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts not in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "YdxmJaoBjKwGSpKMf", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:38:14"}
{"_id": "FaAzheEMEjfrfmRaJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : (c.parts & Component) | p.position not in nexts[c.position]\n}", "derivationOf": "pcWxThABuFz7uF72p", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:50:50"}
{"_id": "PEjJbzQy4XGP9Aata", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | some r : Robot | p in c.position implies some (r.p)\n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "EmgSLXP5Hsp96pLBc", "msg": "This cannot be a legal relational join where\nleft hand side is r (type = {this/Robot})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:12:50"}
{"_id": "xJj83T8obqsCs6mRf", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in (c.^position.~^next)\n}", "derivationOf": "SyvKgFQfuinD52xFR", "msg": "^ <(this/Component <: position);(this/Robot <: position);> is redundant since its domain and range are disjoint: {this/Robot->this/Position, this/Component->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:38:41"}
{"_id": "e32fQuG48N9HfMzJc", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | no c.(c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "urGHx7juRP2Y5SkiR", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is c . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-2-15 21:58:29"}
{"_id": "zmPfAAtc7G5D2LFxa", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mEHHXecfKq2ctcKi4", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-19 08:51:11"}
{"_id": "96SQyQDC2SqzR2yqm", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "78rCdc2Gr3kABGwxs", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-2-15 21:54:44"}
{"_id": "iSDBhcXgRMdYi9B6C", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "g7th2YjHsCDQXve5H", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 21:17:10"}
{"_id": "xKYB8s3pfBrQ5e5aF", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | no position.p.*parts & position.(p.^next).*parts \n}", "derivationOf": "DaFxDNy8BZP88SAE9", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:17:26"}
{"_id": "9myCNPRtYDrRifGYH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall disj c : Component, d:c.parts | no (c & d)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "t5JS4Whwf9PC4jDWT", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:05:26"}
{"_id": "56GbiSvchKeyaCmG5", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | Component.p.parts not in Component.(p.^next).parts\n}", "derivationOf": "P3C7tsQaFc2Rojge3", "msg": "This cannot be a legal relational join where\nleft hand side is this/Component (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:53:54"}
{"_id": "7tJHH6qtqebEfMDJ3", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position<:(Robot->Position))(.c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "MwfFjhaPoPqNhykC7", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:39:45"}
{"_id": "p2xKZH7BYphmno342", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno prev[*Component]\n}", "derivationOf": "YiwDx2Nr6xxWLop6R", "msg": "* can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:33:58"}
{"_id": "Rb7HnutheSXWXWkjE", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p <: Component) & (position.(p.^next) <: Component)\n}", "derivationOf": "Ske3C7TkY5tAMoPnK", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:29:54"}
{"_id": "YdxmJaoBjKwGSpKMf", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts not in iden - none\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "pzD4MhKhndmWku6Yp", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {univ->univ}\nRight type = {none}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:38:08"}
{"_id": "hNWBvzEX56h7WoHym", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some ((c.position).Position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "M6WNPdMiHBpycXfSf", "msg": "This cannot be a legal relational join where\nleft hand side is <c . (this/Component <: position);c . (this/Robot <: position);> (type = {this/Position})\nright hand side is this/Position (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 14:18:12"}
{"_id": "A3rCMmGBbsasLTdm2", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component,p:Product, r:Robot,pos1,pos2:Position| c->p in parts and p->pos1 in position and r->pos2 in position implies pos1=pos2\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yGAjCwo6WRZW8tDKN", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-10 23:06:50"}
{"_id": "8r9LhpNYN5rQCXLsY", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | c->p in Position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7mqSiQWitFz53DaGC", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component->this/Position}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:09:22"}
{"_id": "wJsGbQH3uysRpZEAu", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Position | p in Component.position => some position.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TamKXHEHHEmWjsigj", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:11:41"}
{"_id": "AfbRQQ9tD9fFjW8kY", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "bzRdbBX4h2WnaKGm5", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-16 04:19:03"}
{"_id": "y246oJTu8bspBtWbR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xefrgpY75k62H3PsJ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 21:03:34"}
{"_id": "zewRCixDGaoyJ82pX", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, r:Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xwvrQQApH4pTZ5RdB", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:04:27"}
{"_id": "FqTTA5siDsadcRR2Z", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c: Component | c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "g6Mq22yTrrZQRyrvs", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:46:17"}
{"_id": "mNMZbFaCFD45BunGE", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "dseFjHBoicphprgvN", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:27:14"}
{"_id": "d5sQywKQL4LyZxumS", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some position.c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "9u2HA4oXv3hDFv3Bh", "msg": "This name cannot be resolved; its relevant type does not intersect with any of the following candidates:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:39:03"}
{"_id": "zjgXvbcSJK5pvg7WA", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  (position.~position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Dr8Sg2Sna3eWJLHG9", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Robot->this/Robot, this/Robot->this/Component, this/Component->this/Robot, this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:43:15"}
{"_id": "TRxHrLie3LRWBpFBG", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.parts & c) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7PjERjf5dwpJ84Q5E", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:21:23"}
{"_id": "gimb9tbHxe7HwGfNP", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | no c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oyJANrNXx79PvyB4Z", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 11:21:13"}
{"_id": "quEsaoLZ2Nyg4zcS4", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Componet.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "guheshZRDhB5qXQk8", "msg": "The name \"Componet\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 20:24:52"}
{"_id": "pr4eFBSnTMRNGP48g", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | no c.parts.^parts\n}", "derivationOf": "BAhXvg8TfvupGwd8s", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:47:03"}
{"_id": "aCbBXs6BeKB2uk7Dw", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yyJAyqyvrsMmj3g7T", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:35:59"}
{"_id": "yMDAakmwS4dQS3Ltj", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Product in parts.~parts\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "MP6AJayME2G4Gzk6M", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:25:22"}
{"_id": "dLvDGRtNQWKZxwWkM", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | c.position not in c.parts.position.^next\n}", "derivationOf": "dZicaWP2bjgQQJzja", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:12:15"}
{"_id": "qNriMrMKpfJDZE5Fv", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "orTpMxBkXhnsEH2yT", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:46:53"}
{"_id": "fiZQ9Zc7D2c6qRtze", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n  \n  \n  all c:Component | some c.parts.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "A3rCMmGBbsasLTdm2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-10 23:13:31"}
{"_id": "sDY6YiCpbuEPSk5BZ", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.parts.position < c.position\n}", "derivationOf": "MpXvMJ9TKp5WxqACT", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:50:14"}
{"_id": "JFgJDKiw45KXwqm42", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.position) = (c.^parts).position\n}", "derivationOf": "WwEzG4ZA3WvwuRyfe", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:58:27"}
{"_id": "Mkxt4xMQKp7bi4D4J", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 09:14:41"}
{"_id": "Xc789CrRMZSEfXWav", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in (c.^parts)\n}\t\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yZdvLHTeHfgtWYna9", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 23:15:36"}
{"_id": "pnek6dMRAWz4mrgKp", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "bbxGD36g5nsAr64bB", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 18:48:06"}
{"_id": "w2Mgf6kLqj996hY6p", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prevs[Component.position.next]\n}", "derivationOf": "bH78ToZzvjZES2FCw", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 19:04:15"}
{"_id": "hG9Scf2YKSuBFHh5C", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | some pos : c.position.prevs | p.position = pos", "derivationOf": "4F4AR3qdxnKbCyYYB", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-7 19:42:06"}
{"_id": "dfapekEtnJCDbokJ8", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uzazgyKokoNFpWRYG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-9-23 20:23:43"}
{"_id": "Ske3C7TkY5tAMoPnK", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p <: Components) & (position.(p.^next) <: Components)\n}", "derivationOf": "4pssD7nPBnCpwHWNK", "msg": "The name \"Components\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:29:46"}
{"_id": "Yu8LFHg26aBkcFK2C", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.parts).position not in (c.position).^next\n}", "derivationOf": "F6mPCaohJWW5zjjGf", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:10:31"}
{"_id": "xztvQbou2v7Q7LPFf", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "KxjaEACm8Sv2j6djm", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:37:35"}
{"_id": "WhhZSr5EeCJs3Gvk3", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\t\n}", "derivationOf": "7drCcMLC3TuPW9aHc", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:45:55"}
{"_id": "HkHcxmuwdsjGFyyfn", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-10-28 12:07:27"}
{"_id": "qfDmairwbg4TNPheu", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in ~parts.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "aFwdaS3KnpdgpL6Aw", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:17:24"}
{"_id": "KxjaEACm8Sv2j6djm", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "aCbBXs6BeKB2uk7Dw", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:36:30"}
{"_id": "yGAjCwo6WRZW8tDKN", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component,p:Product |some r:Robot,pos1,pos2:Position| c->p in parts and p->pos1 in position and r->pos2 in position implies pos1=pos2\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "AT2d6FWXQJDXwN9Fs", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-10 23:06:26"}
{"_id": "Y2zSMLAB7YnpmmWGR", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in prevs[c.position] + c.position\n}", "derivationOf": "6KwYfHyWBNouWZpzC", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:55:34"}
{"_id": "Gd9oYvfX8JirfXmE4", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component.position, r:Robot | some r.position & c\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TzRcf27oyqFX5ad3X", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:06:53"}
{"_id": "tBPGBfgHCG4urYjEB", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 15:06:25"}
{"_id": "LxzxRAr9X7KwQtJ9n", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in (Component <: parts).~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "pZdfAvpv8WwdLyn9W", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-11 01:40:33"}
{"_id": "giMSZrX2X6mpuTGC4", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rtorT6dhjjcFTEuoT", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-22 11:02:32"}
{"_id": "uwKg7ho2f5kxGJiuL", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some position.c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JavwCfjMWtpkLgrrD", "msg": "This name cannot be resolved; its relevant type does not intersect with any of the following candidates:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-12 20:23:05"}
{"_id": "ALmraGJAmiGRYXB43", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | smaller[c.position, c1.position]\n}", "derivationOf": "TnWGW8eEHLJsXzAXA", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:44:20"}
{"_id": "T49jakHKYMGa3qv7c", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position.prevs + c.position\n}", "derivationOf": "7uG7wnZyQrmXZqrpk", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:58:44"}
{"_id": "dBdt3kqu8fwBH7gq7", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts not in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "e6fgXgYJyAaDkreiC", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:35:38"}
{"_id": "z7P3ijuefspRvpKkT", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position && Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "9jSdydbpZgo4d49i4", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 14:19:57"}
{"_id": "jrcGKsebgaJfmJ5Fe", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | no c.parts.parts\n}", "derivationOf": "t4CmZ3WsZQwo8AT7r", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:47:10"}
{"_id": "HhCMPaC3PSuNGwDqw", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "eN6oAyJuwE2EowqTT", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 22:44:08"}
{"_id": "TzRcf27oyqFX5ad3X", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component.position | some Robot.position in c\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kG6tJJCywwK2QKbkM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:06:25"}
{"_id": "dSJNcD8MKbRDcoh7k", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t(Robot <: position).(Component <: Position.position) = (Robot <: position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ayZhtACbKc9ya5KnT", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {none}\nRight type = {this/Robot->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:37:05"}
{"_id": "cPoXR4sz428SCE82v", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  Component.^parts.position in Component.position.prevs + Component.position\n}", "derivationOf": "N97GJRJazoCu5GDu7", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:56:05"}
{"_id": "Q4DmcMETqGEuirLTM", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t(Robot <: position).(Component <: Position.position) = (Robot <: position).Position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "nmiHR6suL9Ha27gwS", "msg": "<: is irrelevant because the result is always empty.\nLeft type = {this/Component}\nRight type = {none}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:37:38"}
{"_id": "LeQBhohseDduiQgp8", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:29"}
{"_id": "5E3zzryz5AMwKTCue", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "AT2d6FWXQJDXwN9Fs", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Component": {"x": 761.1428571428571, "y": 132.66666666666666}, "Position0": {"x": 126.85714285714283, "y": 132.66666666666666}, "Position1": {"x": 296, "y": 265.3333333333333}, "Position2": {"x": 634.2857142857142, "y": 132.66666666666666}, "Product": {"x": 507.42857142857144, "y": 132.66666666666666}, "Resource": {"x": 592, "y": 265.3333333333333}, "Robot": {"x": 380.57142857142856, "y": 132.66666666666666}, "ShouldBeAccepted": {"x": 253.71428571428572, "y": 132.66666666666666}, "ordering/Ord": {"x": 444, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2019-11-10 22:49:47"}
{"_id": "KyFhxYPaLpYCTxMb4", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Cm2skdJoDSHZFzYt5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:42:53"}
{"_id": "7PjERjf5dwpJ84Q5E", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.parts & c) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "DsJWGznkxKn82RCMt", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 11:21:20"}
{"_id": "DGb5MHA9C6dv3mhcF", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prevs[Components.position.next]\n}", "derivationOf": "FoSSNZbAEtCBjnKnZ", "msg": "The name \"Components\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 19:08:54"}
{"_id": "uuhSQpZSyqgmJq8uj", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mzGW5wvwimXczjpkx", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is c . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:30:40"}
{"_id": "FQrSNkk4Q6nceY56E", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component |  c.^parts not in (c.^next).^parts \n}", "derivationOf": "k8PYte2acfgZSRpN3", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:49:40"}
{"_id": "Cm2skdJoDSHZFzYt5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 23:42:27"}
{"_id": "xz2kL54dvjfpQQz4W", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "w8tqGbJ5S4YZBEkTZ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 21:03:30"}
{"_id": "XApntCbPaaKDt4YCo", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:32:58"}
{"_id": "rhBH95c3GprgrsEMa", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.^parts).position in c.position.prevs + c.position\n}", "derivationOf": "qWeYAcPooQyM39DQP", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 21:07:35"}
{"_id": "PK6AhRiBjvfANtR6q", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "udoCacj6fY4uFcbSy", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 09:53:24"}
{"_id": "x45tuPxpMLGzgaWL5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:01:14"}
{"_id": "63gDq3Gxdgd2pEMkp", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "quEsaoLZ2Nyg4zcS4", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 20:25:04"}
{"_id": "EyT8RR3qCnM6Jjg5q", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p).*parts & (position.(p.^next)).*parts\n}", "derivationOf": "AeScabynEpC2hT3cs", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:32:32"}
{"_id": "zwWjzde3mBJEEdPyv", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->parts->c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uJDkG4ft6x89r6b66", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:41:12"}
{"_id": "fFHAYwaeZef5MAedv", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c<:parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "P7Tc3dowxG7YTi4a5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:30:56"}
{"_id": "4EqAsNMY3BKtYKXLc", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position.prevs + c.position\n}", "derivationOf": "T49jakHKYMGa3qv7c", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:58:55"}
{"_id": "aqNgD3zzEzmpYigx3", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "AfbRQQ9tD9fFjW8kY", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-16 04:23:44"}
{"_id": "WFgH97XcL2HAuGuRR", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  \t\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n \t^parts & iden = none \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "5iczzjTK9mbuWweY4", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/Component->this/Product}\nRight type = {none}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:40:34"}
{"_id": "yfDjGcqfDjYchtiJk", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tsome Component.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "A5o76xd3vHTpG3mZr", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 21:30:51"}
{"_id": "Ygoe9umJ8H4K3D7h8", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "pTR85nLB3Wcacb5v9", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:32:44"}
{"_id": "tQocx5E74iXHvL4Ln", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "khtEQkeuTbGq7rxEY", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:33"}
{"_id": "iQRfuuRW29Mc5aoKt", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "nhbwzuJMeCzF4Aai7", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:08:58"}
{"_id": "ynKmmMumr9gRaswKa", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "weznZKimxAAeN26FC", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-7 19:27:18"}
{"_id": "PDtfgvoXEcxZMY3Qi", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.Position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "YDfMzzpGMbEZAjKtS", "msg": "This cannot be a legal relational join where\nleft hand side is this/Component (type = {this/Component})\nright hand side is this/Position (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:13:00"}
{"_id": "Xghj3CCxj52YH4xCG", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in *(c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ptcbgPbCzNqgFLLZh", "msg": "* can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 21:51:31"}
{"_id": "XRLC6e8bWysRenJC7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position) & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\nall c : Component | all x: c.parts & Component | x.position in c.position.prevs\n}", "derivationOf": "nYh8F2qZwm3QGpcQ6", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-21 11:41:38"}
{"_id": "B33RNomyZtmQS2Y2m", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | r.component = c.component\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Gd9oYvfX8JirfXmE4", "msg": "The name \"component\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:08:03"}
{"_id": "bH78ToZzvjZES2FCw", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prevs[Component.position + 1]\n}", "derivationOf": "X33ZqzuK5rk4EhhyH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 19:04:02"}
{"_id": "rALxewknAh8qLQhLN", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (Position:>position).(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "cLD4BqAg2icvscz3M", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Position, this/Component->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:41:51"}
{"_id": "AutqvKkgk5p9eqpZ5", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Coponent | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "The name \"Coponent\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-11-10 22:18:58"}
{"_id": "2vh3kZZYc5oLPSfi6", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  iden not in (^parts).~(^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rLh3pBTeXoqGTesgH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:39:49"}
{"_id": "oz2Dufom2t9MLQRBh", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    Robot.position in Component.position \n}", "derivationOf": "uZN9EDqg3nq2CcrFQ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:56:06"}
{"_id": "CZsYGBfhuJt5zEBFR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c1 : Component , y : c1.parts | always no (y & y.parts)  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "gqK8Jukir4gxQMhF9", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:24:39"}
{"_id": "W24mQphimwTZbEfmH", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden[Product]  in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rAQrWeg8LZuMj2LG2", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {univ}\nRight type = {this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-11 01:41:58"}
{"_id": "KKkZDpk3pCcxcWjh8", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ynKmmMumr9gRaswKa", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-7 19:28:20"}
{"_id": "GaGNnbH2sAGznx9dg", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "Ee4N65Xv3Y9oFTqBw", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:10:09"}
{"_id": "dbeZzXdL7uC9pQPH9", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts | p not in nexts[c.position]\n}", "derivationOf": "uSyfc8LPhNrGusL59", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:46:37"}
{"_id": "pZdfAvpv8WwdLyn9W", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-11 01:39:07"}
{"_id": "Ni2j7y8jZePQ69De2", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some Robot \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "9myCNPRtYDrRifGYH", "msg": "This variable is unused.", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:07:49"}
{"_id": "98PXix3jxgeGjmLzc", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ef4gWiJqbsax2SC23", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:28:22"}
{"_id": "zeTNT8LdckiqftdAE", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "AXRxg74uLevXqYE8h", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 19:41:40"}
{"_id": "ysqnvyLKkeNgz6bWa", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c<:parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "fFHAYwaeZef5MAedv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:31:04"}
{"_id": "5QtmQi78DCNyTrgBi", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\nall p : Position | some position.p implies some position.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7Br7Drj6hyh5ARZ3K", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-21 11:33:25"}
{"_id": "F6mPCaohJWW5zjjGf", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.parts).position in (c.position).^~next\n}", "derivationOf": "nzDHZMhwjiDWTevva", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:10:21"}
{"_id": "uZN9EDqg3nq2CcrFQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "n9nkEiwZSXNqXcsLG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:53:35"}
{"_id": "P9Z3WxurmjqoBx5xg", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component , some r:Robot | r->(c.position) in Robot<:position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "KNF9y8p4GBDtPzBqk", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 09:59:36"}
{"_id": "8K4ZndhPoRtCy9M84", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 10:59:47"}
{"_id": "7gopAbFbXPsRfmtqo", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some p:Product | some c->p in parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 00:38:35"}
{"_id": "9ATEjr7qK9M9ixJxN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-5-6 14:08:31"}
{"_id": "oiAAQXWfwDgqFfuoQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "giMSZrX2X6mpuTGC4", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:02:35"}
{"_id": "pSyMM24F58rXY7Luq", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 19:21:25"}
{"_id": "vAW5ShiPDEzzj22r4", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts.position in prevs[c.parts]\n}", "derivationOf": "SGu9EBL4WEMZRmGCT", "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 fun integer/prevs.\nThe parameters are\n  e: {Int}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})\n\nThis cannot be a correct call to fun ordering/prevs.\nThe parameters are\n  e: {this/Position}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:54:33"}
{"_id": "3rfpY59xJk44TFjpk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "w6AGwcMQzPY36GYcA", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 22:34:23"}
{"_id": "mEHHXecfKq2ctcKi4", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 08:50:45"}
{"_id": "mk5AxQYbEse6jJgvo", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden[Component] in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "cNyMBuo3YrbxaiuoR", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {univ}\nRight type = {this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 23:37:10"}
{"_id": "64Q9WgiM97wXPCMmE", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) < c.position\n}", "derivationOf": "2xuDX5SQxzAP4tZBW", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 14:22:25"}
{"_id": "njFA9mHMqqeB3w6Th", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "LRYyuskpzyztwRf7b", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:42:12"}
{"_id": "6smad8Mz4hrovRKfp", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position:>Position).(c.(Component:>position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "QAfba9xPE8Aqy6Mx7", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:42:27"}
{"_id": "J7we3FGLoLEDgPQ4s", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p).*parts & (position.(p.^next)).*parts\n  \tall c : Component | no c.parts.position\n}", "derivationOf": "EyT8RR3qCnM6Jjg5q", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:40:00"}
{"_id": "4jC7jZTGyzfK9TmbH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c: Component | no c & c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "MfSZX6BgxhDmESYKD", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:36:06"}
{"_id": "BAhXvg8TfvupGwd8s", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "m36ccebGfxg2pghpX", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:44:10"}
{"_id": "WnBXGzka33YPTeBS4", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts not in c.^next\n}", "derivationOf": "93XedNo8gYkR9MGr6", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:09:27"}
{"_id": "7pQQENmHhN8JrtaHv", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "T8CWgWkkZMgX3sPaK", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 21:04:40"}
{"_id": "w6AGwcMQzPY36GYcA", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "HNPJFKpXFJjDT4K4s", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Component0": {"x": 748.5602678571429, "y": 99.5}, "Component1": {"x": 698.65625, "y": 199}, "Position0": {"x": 598.8482142857143, "y": 99.5}, "Position1": {"x": 349.328125, "y": 199}, "Position2": {"x": 698.65625, "y": 298.5}, "Product": {"x": 349.328125, "y": 298.5}, "Robot0": {"x": 898.2723214285714, "y": 99.5}, "Robot1": {"x": 449.1361607142857, "y": 99.5}, "Robot2": {"x": 299.4241071428571, "y": 99.5}, "ShouldBeRejected": {"x": 149.71205357142856, "y": 99.5}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2019-10-17 10:57:07"}
{"_id": "TFg8MXgdQNavBTp4b", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "5CDpRhc37SK4JY9ik", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:01:26"}
{"_id": "sit9tYYD5MgksxSYp", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in (c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ov9DfaEBdzo9PThyg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:29:46"}
{"_id": "3BcNeRkK5ajJqshfA", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some Robot.~(c.position) \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "D8ouoifQi8jc633u8", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:44:46"}
{"_id": "wK5Chqso8RfJvhj8Q", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |some c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c:Component | no (c.parts & c)\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "yXHHkRrsLT6di6Wz6", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 19:02:44"}
{"_id": "6W5MYoDA8CNGpFHrD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 11:13:54"}
{"_id": "t67WRB3GW7wnc3cSb", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.parts in c.position.~^next\n}", "derivationOf": "hzKMq8w7PzCuM5MrB", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:54:50"}
{"_id": "oTD4pykg3rsBeWfxz", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "dXNsZnJhyiJjdqkgN", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:17:54"}
{"_id": "TrH5gaddceQhGLtKZ", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c,c1 : Component, p : Position | (c not in c->parts) and (c1 not in c1->parts) and c->p + c1->p in position => c = c1 \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ySavkLBfc4dLJLrqg", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component}\nRight type = {this/Component->this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:19:43"}
{"_id": "CfL2bYBR4CymW945h", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tsome Component.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "wxB2WzHnLzJLPgNsp", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:20:20"}
{"_id": "EC3zcrhrCwhiSzDS2", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.parts):>Component).position not in (c.position).^next\n}", "derivationOf": "Yu8LFHg26aBkcFK2C", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:12:42"}
{"_id": "b9S7x7n22ydmBQL6k", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BcWWwXTYmBkanNWLs", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 12:35:55"}
{"_id": "2xuDX5SQxzAP4tZBW", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rhvRsNzkfHYwpYJbQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:21:21"}
{"_id": "JLreCdWr6DwGh3hW2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rYdH9Q5sCuPd8jRZm", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:16:06"}
{"_id": "WWTZfwk2wefhbnDtJ", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall p : Position | no position.p.parts & position.(p.^next).*parts \n}", "derivationOf": "voj2brSDa5wXea4G7", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 18:24:09"}
{"_id": "TnWGW8eEHLJsXzAXA", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | c.position before c1.position\n}", "derivationOf": "mzP3Eo2t3t3MJEqZ2", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:43:37"}
{"_id": "kQSqJzuJKtw4FRC4N", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "7Z7wyiRNhunA9tMRg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 15:53:43"}
{"_id": "uAyRbo7iMESTvxnQj", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 20:18:51"}
{"_id": "k8PYte2acfgZSRpN3", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component |  c.^parts not in c.^next.^parts \n}", "derivationOf": "eMpZGCowbmwbTScDT", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:49:27"}
{"_id": "6ScHHs5KoT5yCERz8", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3jj6KrvD3yoBgQ8kg", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 22:02:57"}
{"_id": "op5tBELooAkQgzru3", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | no position.p.parts & position.(p.^next).parts\n}", "derivationOf": "XxEo4fAhyspzEKgfn", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:05:38"}
{"_id": "T9DsaTHHzZMsAMpx6", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position, p : c.parts | p.position.lte[pos]\n}", "derivationOf": "8Jq53fRZPCnZxkdzQ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:58:19"}
{"_id": "AeScabynEpC2hT3cs", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p <: Component).*parts & (position.(p.^next) <: Component).*parts\n}", "derivationOf": "FDhCLJM5ibXSpcvgN", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:30:26"}
{"_id": "JBpN4TeY5S5yYCskt", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    Robot.position = Component.position \n}", "derivationOf": "oz2Dufom2t9MLQRBh", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:56:23"}
{"_id": "EfBeyyoxbcr4sxMrT", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  \t\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n no\t^parts & iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "WFgH97XcL2HAuGuRR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:40:45"}
{"_id": "eN6oAyJuwE2EowqTT", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Componet | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "The name \"Componet\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-19 22:43:53"}
{"_id": "9NcYSpdP8tNsACkNR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rsEKLp3mxxpv7ypJv", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:34:00"}
{"_id": "HFkcDKdcDeujRsDrv", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 02:09:52"}
{"_id": "gpeaoX2J3GtXEGyPv", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component |  one ((c.position))\n}", "derivationOf": "mKjTrmtrAawc9pRqJ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:59:46"}
{"_id": "ZTTKAy9iEzcWHKzDS", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "mBptkQA9FBmNsP5yM", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 02:09:56"}
{"_id": "We6nNYbZoRiBwgp9o", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | position.p).parts not in position.(p.^next).parts\n}", "derivationOf": "vLcM5WkygjMsjpwQR", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:54:48"}
{"_id": "7Kke6FdwCC6iT7qky", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c,c1 : Component, p : Position | c->p + c1->p in position => c = c1 \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JLreCdWr6DwGh3hW2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:19:00"}
{"_id": "rtorT6dhjjcFTEuoT", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "pgfnSZwRpsryCyTGB", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-22 11:01:41"}
{"_id": "Ld9rkbgpSPkjX5THx", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component | all p : c.parts | p in Component implies p.position not in nexts[c.position]\n}", "derivationOf": "fteZsWLEzLHdCKZos", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 09:12:50"}
{"_id": "et9K8nPksC6axHeie", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in (c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "e32fQuG48N9HfMzJc", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-2-15 21:58:42"}
{"_id": "iHnc3Yk4eFFdXiWWS", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | c.position < c.prevs\n}", "derivationOf": "gNHPhJ9MN73QEB26J", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:43:48"}
{"_id": "Ku5au9hgfAeuF6cSY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | (c.^parts).position in prevs[c.position]\n}", "derivationOf": "edKM474cKPZT2LBpp", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:54:45"}
{"_id": "QAfba9xPE8Aqy6Mx7", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (position:>Position).(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rALxewknAh8qLQhLN", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:42:04"}
{"_id": "L5XNePkqZ9DKxP6dN", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts) \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  some (position.(c.position) & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | no((c.^parts ).position  & c.position.^next) \n    \n  \n\n}", "derivationOf": "xctf9WMsHufP3x5fy", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 23:27:46"}
{"_id": "m3bi6dDH2dnWARWAF", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ZZ8WhaRk6SH9ZMjbE", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:41:42"}
{"_id": "JvNafw9yCSBpzJsMX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts | p.position not in nexts[c.position]\n}", "derivationOf": "Boev6nS7e5pJx4GS5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:47:31"}
{"_id": "GuwTbRc3YDvSaHyYx", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position | all p : c.parts | p.position.leq[pos]\n}", "derivationOf": "ociBQ8iJHM7bGqrhK", "msg": "The name \"leq\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:57:42"}
{"_id": "TncbWnJ7cBQvizZAX", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.^parts in prevs[c.parts]\n}", "derivationOf": "vAW5ShiPDEzzj22r4", "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 fun integer/prevs.\nThe parameters are\n  e: {Int}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})\n\nThis cannot be a correct call to fun ordering/prevs.\nThe parameters are\n  e: {this/Position}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:55:05"}
{"_id": "XmM6ZivxLPbtsC4fq", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position, p : c.parts | p.position.lte[pos]\n}", "derivationOf": "T9DsaTHHzZMsAMpx6", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:58:23"}
{"_id": "Dr8Sg2Sna3eWJLHG9", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CMBHWfFuDp3t9pBbb", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:38:59"}
{"_id": "jnRZz86Tco7qsPP7i", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position.prevs\n}", "derivationOf": "sDY6YiCpbuEPSk5BZ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:53:21"}
{"_id": "BXwuJiGfP4XpSHe2r", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | c not in c.*succ\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "5AiC2meFP47w7XtKL", "msg": "The name \"succ\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-9 04:39:41"}
{"_id": "gvqYcMKk7hraiuApq", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | some r : Robot | p in c.position implies some p in r.position \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "nJBaqnQMWATP42mzP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:14:09"}
{"_id": "BFRN8wXyHa7zLTSeQ", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  (Component.^parts).~(Component.^parts) in iden \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "cFYqCzpqrSiTFCHLd", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:38:41"}
{"_id": "gCyPJPFYSgRRuRMks", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position, p : c.parts | p.position = pos \n}", "derivationOf": "tobywsWJ5n75KqeyH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:55:29"}
{"_id": "xMmYtBFgcsQCT6Bop", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c<:parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ysqnvyLKkeNgz6bWa", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:31:08"}
{"_id": "dXNsZnJhyiJjdqkgN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "qfDmairwbg4TNPheu", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:17:39"}
{"_id": "BWyKiaLAcPKZRAfY7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component| always c.parts.position in prevs[c.position] \n}", "derivationOf": "fzCqqAmu2zbZDsgAg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:38:20"}
{"_id": "rsEKLp3mxxpv7ypJv", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | lone c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:32:10"}
{"_id": "KcrzctsroJaou8KaS", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno Componet.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "hD6mo63CSKcvM4ukp", "msg": "The name \"Componet\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:51:07"}
{"_id": "AHJ4Q6WP79j6uQgJH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.^parts.position in (prevs[c.position] + c.position)\n}", "derivationOf": "EHyxXM6d3cLxLipSE", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:58:53"}
{"_id": "gNHPhJ9MN73QEB26J", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "SKfJgGegt4cQYAco7", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 16:26:47"}
{"_id": "kJz4gZ4ZTtmystgHj", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "tBPGBfgHCG4urYjEB", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 15:07:03"}
{"_id": "3ysfwW5jRRcFPKj2i", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no ^parts in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "dBdt3kqu8fwBH7gq7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:35:59"}
{"_id": "TohkCuWEjvy2hgAcg", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "DSPospR2YPFRwFSur", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:46:50"}
{"_id": "oWerMG6QfPSr67zBE", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all r: Robot | r.position.~position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mD3xFxFAtPohWscKo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Robot, this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:45:38"}
{"_id": "S76cYd52bJa8WFafr", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |lone c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 18:54:44"}
{"_id": "W3PoLW2BFRHjTKBNn", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in ~parts.parts and Component in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oTD4pykg3rsBeWfxz", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:18:59"}
{"_id": "x4CD5anXbiF5huE25", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |some c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall disj c,c1:Component | no (c.parts & c1.parts)\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "wK5Chqso8RfJvhj8Q", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 19:05:25"}
{"_id": "QjnWNw3A9pCEyHWj7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "b4butKMAmMdS8Q8zq", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:09:38"}
{"_id": "W6oHwdggaEKonZhTC", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "98PXix3jxgeGjmLzc", "msg": "This variable is unused.", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:28:51"}
{"_id": "ehwCRCfSFQ7H5C63m", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "9kh9BCX2dBkPu5hMo", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 18:44:04"}
{"_id": "oKKqzaK5EvviCzhXe", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some position(.c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Yt5NGWsNQ2eRB9EL4", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:39:59"}
{"_id": "DjxA3Bmec2PcYXi4m", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TohkCuWEjvy2hgAcg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:47:19"}
{"_id": "movr8r9FrDMgnNGXj", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall p : Position | no position.p.parts & position.(p.^next).parts \n}", "derivationOf": "WWTZfwk2wefhbnDtJ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:24:22"}
{"_id": "KZqiiGpXqae7xjeXC", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  prevs[c.position]\n}", "derivationOf": "eFm7KJY5bXwJnaSjZ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:25:17"}
{"_id": "EHyxXM6d3cLxLipSE", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.^parts.position in (prevs[c.^parts.position] + c.position)\n}", "derivationOf": "kgA7B4zbbWXrwqQFv", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:56:33"}
{"_id": "rAQrWeg8LZuMj2LG2", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden[Component]  in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "A5r4pS68rimP9wnH7", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {univ}\nRight type = {this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-11 01:41:42"}
{"_id": "g6Mq22yTrrZQRyrvs", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c: Component | c.position.~position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oWerMG6QfPSr67zBE", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Robot, this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:46:06"}
{"_id": "ft5ByRZdr98EpjnKD", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "MBWWrDBw488gqgFrB", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:12:29"}
{"_id": "Zh3N4vbiDxWsbWapv", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xHogWsmF2xy3zWAPz", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 14:21:12"}
{"_id": "FGtYP3pom4RcX6FNL", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : c.parts | p not in nexts[c.position] \n  \t\n}", "derivationOf": "LAoxfGWn9mkPooxN5", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 18:52:17"}
{"_id": "2yWqnmH4LeR4Y7vPE", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c<:parts).c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "e8HfMFaC4hcXNsz5K", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:33:21"}
{"_id": "Mwncyj4ReKjBpSE8C", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | (c.^parts).position in c.position.prevs + c.position\n}", "derivationOf": "rhBH95c3GprgrsEMa", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-12 21:08:50"}
{"_id": "YtgifHvJec8HRYKdB", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (Component.^parts)<:Component\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "5q3azcXDjqeesaHtX", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:51:44"}
{"_id": "B3hjLNu83Gi8X63Gh", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position.lte[Component.parts]\n}", "derivationOf": "hzBWySvkwRxPN6gCm", "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 integer/lte.\nThe parameters are\n  n1: {Int}\n  n2: {Int}\nso the arguments cannot be\n  <this/Component . (this/Component <: parts) . (this/Component <: position);this/Component . (this/Component <: parts) . (this/Robot <: position);> (type = {this/Position})\n  this/Component . (this/Component <: parts) (type = {this/Product})\n\nThis cannot be a correct call to pred ordering/lte.\nThe parameters are\n  e1: {this/Position}\n  e2: {this/Position}\nso the arguments cannot be\n  <this/Component . (this/Component <: parts) . (this/Component <: position);this/Component . (this/Component <: parts) . (this/Robot <: position);> (type = {this/Position})\n  this/Component . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 19:00:12"}
{"_id": "nmiHR6suL9Ha27gwS", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t(Robot <: position).(Component <: Position.position) = (Robot <: position.Position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "dSJNcD8MKbRDcoh7k", "msg": "<: is irrelevant because the result is always empty.\nLeft type = {this/Component}\nRight type = {none}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:37:21"}
{"_id": "yrEa4shyBtRWwsPE9", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JAyAxW65vXCjfg8JJ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-9 04:40:09"}
{"_id": "7TJb2xJEChWvELGjF", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | (c.position) not in (c.parts.position.^next)\n}", "derivationOf": "dLvDGRtNQWKZxwWkM", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-23 03:12:55"}
{"_id": "5ZZ2YSkHrgo7S2Qer", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | p in c.position\n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xTxtuJFWq48DGuYFy", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:11:58"}
{"_id": "FoSSNZbAEtCBjnKnZ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.position in prev[Component.position.next]\n}", "derivationOf": "w2Mgf6kLqj996hY6p", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 19:06:24"}
{"_id": "L3mEzuutJTsCQQT2E", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all disj c, c1 : Component | smaller[c.position, c1.position]\n}", "derivationOf": "owbApsK5GHnqbw4qn", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:50:49"}
{"_id": "5q3azcXDjqeesaHtX", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (Component.^parts).Component\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "L5jj3wKuncFNzbTRr", "msg": "This cannot be a legal relational join where\nleft hand side is this/Component . ^ (this/Component <: parts) (type = {this/Product})\nright hand side is this/Component (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:51:38"}
{"_id": "qxCPdKSGdgy8KWsd9", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "mNMZbFaCFD45BunGE", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:27:19"}
{"_id": "mKjTrmtrAawc9pRqJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component |  one ((c.position) + (c.^parts).position)\n}", "derivationOf": "HDwKT6ib3tKs8y4dj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:59:02"}
{"_id": "ESknsQ2AZZG4nCsCp", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2vh3kZZYc5oLPSfi6", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:40:23"}
{"_id": "EpyPe8mqT5xsf3W5r", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts and (Component + Resource) in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3jN99skFYsnQkS8wz", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:21:19"}
{"_id": "6Eu2BeK7umYw3LpFg", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "XApntCbPaaKDt4YCo", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:33:11"}
{"_id": "uSyfc8LPhNrGusL59", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "b9S7x7n22ydmBQL6k", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:36:40"}
{"_id": "4pssD7nPBnCpwHWNK", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall disj c1, c2 : Component | c1.parts in c2.parts implies c1.position in c2.position.*prev \n}", "derivationOf": "movr8r9FrDMgnNGXj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:27:13"}
{"_id": "LZxsgyoQwR3KBPZmp", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-2-15 02:51:35"}
{"_id": "N97GJRJazoCu5GDu7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in c.position.prevs + c.position\n}", "derivationOf": "Y2zSMLAB7YnpmmWGR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:55:45"}
{"_id": "ko4YZD2uc9ygeaM5E", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kJz4gZ4ZTtmystgHj", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 15:07:45"}
{"_id": "wwzJrkZCmAt6Go3ra", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uQr6HxYhR82SHchT5", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 17:28:46"}
{"_id": "ujs425sK6qaQk8gR5", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | c.p \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "8r9LhpNYN5rQCXLsY", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:10:04"}
{"_id": "cepGWJQq4FXCqaPok", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "AutqvKkgk5p9eqpZ5", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-11-10 22:19:17"}
{"_id": "fzCqqAmu2zbZDsgAg", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component| c.parts.position in prevs[c.position] \n}", "derivationOf": "C4WmQPHFxyo4qsgpj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:38:06"}
{"_id": "g483cTWFyfLtC2mPb", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts:>(c.position.~^next)\n}", "derivationOf": "rq3dHn4G42LQk4h9m", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:14:07"}
{"_id": "ZZ8WhaRk6SH9ZMjbE", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "8u3jki6mFc5QwTwX6", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:41:34"}
{"_id": "zHxsHSNvgPcqnK6Ao", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PBdH76wPWvs7fCA4S", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:47:49"}
{"_id": "t4CmZ3WsZQwo8AT7r", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | no c.parts.^parts\n}", "derivationOf": "pr4eFBSnTMRNGP48g", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:47:05"}
{"_id": "GXyC7KhnT6kGtwzJp", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Xghj3CCxj52YH4xCG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:51:42"}
{"_id": "YiwDx2Nr6xxWLop6R", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno *(prev[Component])\n}", "derivationOf": "BX5PptcEzCCjghDMN", "msg": "* can be used only with a binary relation.\nInstead, its possible type(s) are:\n{none}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:33:47"}
{"_id": "EYRbhPnvoDmzvXgHw", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\n    all c:Component | c.parts.position in c.position.*prev \n\n}", "derivationOf": "LdkYj5XYu35Dsf5yj", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 16:54:06"}
{"_id": "6KwYfHyWBNouWZpzC", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in prevs[c.position]\n}", "derivationOf": "Ku5au9hgfAeuF6cSY", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:54:51"}
{"_id": "D33uQTeHmi7wKv6uD", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\t\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ZBuiuzQ8E7oEGpLca", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 23:13:29"}
{"_id": "c4DjWbiXdgM2rwjwa", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.^parts) & Component).position not in (c.position).^next\n}", "derivationOf": "skyb8D22nN8Q9L8Bg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:13:38"}
{"_id": "4ABt24m5jXGAEZzMk", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tiden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2hmmajfM7z3Ypqjsu", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-14 11:24:33"}
{"_id": "qWeYAcPooQyM39DQP", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tComponent in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\t\n  \tall c: Component | some Robot<:position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.position.lt[(c.position).position]\n}", "derivationOf": "y246oJTu8bspBtWbR", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-12 21:05:04"}
{"_id": "Bi5HbvPTTeHN9Enza", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-6 18:00:43"}
{"_id": "8nEC9KDKra7xZ3yQR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\talways some Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 21:14:13"}
{"_id": "Ppjfi8gCoqmTrKQGj", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | #c.parts >=1\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in *(c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "et9K8nPksC6axHeie", "msg": "* can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-2-15 21:59:21"}
{"_id": "skyb8D22nN8Q9L8Bg", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | ((c.parts) & Component).position not in (c.position).^next\n}", "derivationOf": "EC3zcrhrCwhiSzDS2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:13:12"}
{"_id": "3ZhQSnvEFGQFBZLqq", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all p:Product | some p.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "bADLekdn9XakM5kBm", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:06:50"}
{"_id": "BSDiQCbq9kuhD5guH", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PDtfgvoXEcxZMY3Qi", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-14 11:13:19"}
{"_id": "MP6AJayME2G4Gzk6M", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Product->Product in ~parts.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xwFL5wYtqm2BRxqgN", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:24:26"}
{"_id": "nDch6sggTpedjHjSg", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  ~component.component in iden\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "The name \"component\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:23:28"}
{"_id": "X4j93xkLtMSYgaHtM", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r: Robot | c.position = r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Components | all p : c.parts | p in c.position.prevs.parts\n}", "derivationOf": "KKkZDpk3pCcxcWjh8", "msg": "The name \"Components\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-7 19:35:58"}
{"_id": "acYmqxhWBKKqSxFQz", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\talways(all c : Component | no (c & c.parts))\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6XwJgY5tzvWCcdfKj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:03:00"}
{"_id": "pEPPM8Xsp27wX4aNa", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 11:00:02"}
{"_id": "AfGAfaoYm5TWRFNbq", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component |  one ((c.position) + (c.parts).position)\n}", "derivationOf": "YfuLA9Eabb8yk4C3c", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-14 00:04:32"}
{"_id": "mEF5YAB3bPgBWhSaa", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position $ c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xMCmnBDQJjaAbmdrz", "msg": "The name \"$\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:34:57"}
{"_id": "bbxGD36g5nsAr64bB", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ehwCRCfSFQ7H5C63m", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-9 18:44:49"}
{"_id": "og2bX9oq64Xu5XNrn", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "dt2cwK8EXfRae75hd", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:44:58"}
{"_id": "RDu5yptBvFjjmWQMm", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "m48gdH4qKs3ENQL6h", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:56:46"}
{"_id": "e2mJGdRxFwkbJEFGZ", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | c not in c^.parts \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "qYCMM3cqpxwwjNYe2", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:36:58"}
{"_id": "gDg4YJZ2mHWmNkMfF", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Rn99dHMg5CpptSxNi", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 21:32:19"}
{"_id": "sCt5pgSMoEaNJLmdg", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.position) == (c.^parts).position\n}", "derivationOf": "JFgJDKiw45KXwqm42", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:58:34"}
{"_id": "mBHbu4AxsP8CMq4hG", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (Robot:>position).(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "z4E5hFo7PrQFoELP6", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Position, this/Component->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:41:16"}
{"_id": "g7jDjLDkRc9GhRdH5", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts in c.position.~^next\n}", "derivationOf": "Ec5Yr5FvSoXv8JLfM", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:11:38"}
{"_id": "KAHYvHxNqPpCFounD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "rfQnhHMvRoPZegfNR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-11 23:26:54"}
{"_id": "6wTbqmTTywQ8wBwSM", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no c.^parts & c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, r:Robot | c.position = r.position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3v2Jju2DATpi8ysYr", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-22 11:05:07"}
{"_id": "RgqFxoAvf4EXmf4i6", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts  \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n  \n  \n  all c:Component | c.^parts.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "LcaEDj4GKagyLXJEc", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-11-10 23:14:28"}
{"_id": "A5r4pS68rimP9wnH7", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden[Component] in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "LxzxRAr9X7KwQtJ9n", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {univ}\nRight type = {this/Component->this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-11 01:41:25"}
{"_id": "rYdH9Q5sCuPd8jRZm", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some Robot->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BSDiQCbq9kuhD5guH", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:13:39"}
{"_id": "SGu9EBL4WEMZRmGCT", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some Robot.position & c.position\n  \t\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts.position = prevs[c.parts]\n}", "derivationOf": "jrcGKsebgaJfmJ5Fe", "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 fun integer/prevs.\nThe parameters are\n  e: {Int}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})\n\nThis cannot be a correct call to fun ordering/prevs.\nThe parameters are\n  e: {this/Position}\nso the arguments cannot be\n  c . (this/Component <: parts) (type = {this/Product})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:54:25"}
{"_id": "kobnekNdvAdmiqcF7", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "HhCMPaC3PSuNGwDqw", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 22:47:31"}
{"_id": "3ea8FLvy8b3ZtTbJZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:14:56"}
{"_id": "TamKXHEHHEmWjsigj", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Position | p in Component.position => some position.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "iQRfuuRW29Mc5aoKt", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-14 11:11:38"}
{"_id": "hzBWySvkwRxPN6gCm", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tComponent.parts.postion.lte[Component.parts]\n}", "derivationOf": "P9QFpmsZgPnnY6a34", "msg": "The name \"postion\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 19:00:05"}
{"_id": "Ad5v74StZCEbxDfWa", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tsome parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:32:05"}
{"_id": "GrRYMyFYQs9muHjAm", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "gimb9tbHxe7HwGfNP", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 11:21:32"}
{"_id": "P7Tc3dowxG7YTi4a5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c.(c<:parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "uuhSQpZSyqgmJq8uj", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:30:50"}
{"_id": "s7DF344fNmo9nvbfe", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (Component<:*parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xDztjhzkNEy6RCnis", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:52:22"}
{"_id": "udoCacj6fY4uFcbSy", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 09:52:48"}
{"_id": "Boev6nS7e5pJx4GS5", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts | p not in nexts[c.position]\n}", "derivationOf": "dbeZzXdL7uC9pQPH9", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Product}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:46:41"}
{"_id": "GKPB3icDZXhJ7kWpy", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tnoprev\n}", "derivationOf": "6ScHHs5KoT5yCERz8", "msg": "The name \"noprev\" cannot be found.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 22:57:38"}
{"_id": "kaMWrXdZ2sg7vWmCL", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in  c.parts.*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component , p : c.parts | p.position not in nexts[c.position] \n  \t\n}", "derivationOf": "FGtYP3pom4RcX6FNL", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 18:53:07"}
{"_id": "QFbKS5TPpFnpXHP4a", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c: Component | no c & c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "4jC7jZTGyzfK9TmbH", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:36:13"}
{"_id": "xwvrQQApH4pTZ5RdB", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, r:Robot | c.position in r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "S3FXrwFG55THu37DA", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 16:04:20"}
{"_id": "LdkYj5XYu35Dsf5yj", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\n    all c:Component, p:c.parts & Component | c.position in p.position.*next \n\n}", "derivationOf": "WB5JgCr5v24TZnKED", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 16:52:49"}
{"_id": "aEwWP7CTwPS7BcSW7", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | no  c.parts.position.~^next\n}", "derivationOf": "AJTfHSAm4baXeeWTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:48:45"}
{"_id": "uEW4ahiiCCCruXkyt", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c : Component | c not in (c.parts=.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mcAnXW9mmzE9KzhL3", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 22:37:22"}
{"_id": "hzKMq8w7PzCuM5MrB", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.part.position in c.position.~^next\n}", "derivationOf": "4FawfKYue6j9QMR8n", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:53:40"}
{"_id": "A6sCr78iJD5XK4Wzz", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "fq2Sxo443NoNpnzpx", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:35:11"}
{"_id": "EmgSLXP5Hsp96pLBc", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | p in c.position implies some Robot.p\n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "5ZZ2YSkHrgo7S2Qer", "msg": "This cannot be a legal relational join where\nleft hand side is this/Robot (type = {this/Robot})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:12:20"}
{"_id": "z4E5hFo7PrQFoELP6", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some position(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oKKqzaK5EvviCzhXe", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:40:05"}
{"_id": "3WLMuzD5wj7RyCMgd", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | no c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "6W5MYoDA8CNGpFHrD", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 11:14:38"}
{"_id": "4bxK7XAK78gDNBgNe", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  prevs[c.position]\n}", "derivationOf": "KZqiiGpXqae7xjeXC", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-12 14:25:22"}
{"_id": "w8eNS4QxeNCrMk7vG", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts not in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "omwzFAi6RQGeRuWsf", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:37:10"}
{"_id": "qKBS2yd3hEkkFhwJD", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.parts & c)  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some(c.position & Robot.position) \n}\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "TRxHrLie3LRWBpFBG", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:22:18"}
{"_id": "uTJaHDuQrpgmnwrZh", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, p : c.parts.position | p not in c.position.^next\n}", "derivationOf": "csvce7dtcvtuzSzcr", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-14 00:51:42"}
{"_id": "YeKMqexTEY8EEYg42", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "sgio435BYM8mJuAoN", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:10"}
{"_id": "8u3jki6mFc5QwTwX6", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some p : Position | some c.p implies some Robot.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "HfyHmaaZLMMoREbtN", "msg": "This cannot be a legal relational join where\nleft hand side is c (type = {this/Component})\nright hand side is p (type = {this/Position})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:41:29"}
{"_id": "BoM6uG7c8B2eNqXTZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jhgAmmMbx4nc3HQZe", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:34:50"}
{"_id": "TmEZktdAemuXFCbrM", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tiden in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "4ABt24m5jXGAEZzMk", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:24:36"}
{"_id": "dttMLuiDrDqLFhdAk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c : Component | c not in (c.parts).^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\nall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\nall c : Component | all p : (c.parts & Component) | p.position not in nexts[c.position]\n}", "derivationOf": "dd8F9Bhpc9q4HBW22", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 22:40:03"}
{"_id": "bKKzD54p6nyYCPkNt", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | c.position < c.prevs.position\n}", "derivationOf": "iHnc3Yk4eFFdXiWWS", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:44:07"}
{"_id": "53q9EY9gjTSqRjfzn", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 23:35:17"}
{"_id": "sgio435BYM8mJuAoN", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n    position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no c : Component | c in c.^(parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c : Component | no (nexts[c.position] & c.parts.position)\n}", "derivationOf": "ee5opGEkPTaa4NuSB", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-23 03:18:09"}
{"_id": "diwzrCu33RT7tYJ4M", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  (^parts).~(^parts) in iden \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BFRN8wXyHa7zLTSeQ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:38:56"}
{"_id": "CH2X32h86xyS6bzwE", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno prev[Component]\n}", "derivationOf": "ksYBDNNHuTss7dpFP", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 22:58:50"}
{"_id": "NwispHFPjFwXzqL3h", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c: Component, r: Robot | some c.position & r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "938qSMHdLq7tge3vP", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:46:53"}
{"_id": "AxMFjo4i4RqePHpWh", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c & ^parts.c not in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "udF3wnmBYYonNzx4v", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component}\nRight type = {this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:49:34"}
{"_id": "ukdcdYrMM2PA6fgwJ", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some position.(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3PvB3HzuZthF6A3zE", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:42:44"}
{"_id": "Aw37dChLRiXJvktbZ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.position.lte[c.^parts.position]\n}", "derivationOf": "7AejaMK2skZz9unGS", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:57:06"}
{"_id": "uQr6HxYhR82SHchT5", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 17:27:58"}
{"_id": "CZA4YJ6sMwSgjTg8e", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->c in parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "og2bX9oq64Xu5XNrn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:46:15"}
{"_id": "GwNoKgoMirSgWQ2Q2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c: Component | no c & c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "QFbKS5TPpFnpXHP4a", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:36:38"}
{"_id": "xwzz4YxsF2q4Giydc", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-9-23 20:23:23"}
{"_id": "XxEo4fAhyspzEKgfn", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | position.p.parts not in position.(p.^next).parts\n}", "derivationOf": "NmTaN9TG4u6LKfDvx", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 17:56:05"}
{"_id": "izmvrHsgvhJo7G3yt", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component | c.parts in c.^~next\n}", "derivationOf": "99DJkdMHZ2aXTPn55", "msg": "This name is ambiguous due to multiple matches:\nfun integer/next\nfun ordering/next", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 10:08:58"}
{"_id": "aYAxhv838QDSfpYDo", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r:Robot | c.position = r.position   \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component, p:c.parts | c.position < p.position\n}", "derivationOf": "EcJg47duab6ocDrfA", "msg": "This must be an integer expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 16:48:24"}
{"_id": "jNhKLMEz5W7KiCyFk", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c->parts->c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "ZwN5a8zq3X79rrL9D", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:38:24"}
{"_id": "DJrzfRMnsNTZ8KHNe", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall c : Component | no c.^parts.position & c.position.^next\t\n}", "derivationOf": "WhhZSr5EeCJs3Gvk3", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 18:45:58"}
{"_id": "omwzFAi6RQGeRuWsf", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  ^parts in iden == False \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "3ysfwW5jRRcFPKj2i", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:37:01"}
{"_id": "xwFL5wYtqm2BRxqgN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  ~parts.parts in iden\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "nDch6sggTpedjHjSg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:23:38"}
{"_id": "TnWzs6sqbMLYW25SW", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | one (c.^parts).position  \n}", "derivationOf": "DYaF5egkjomaMQEpd", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:51:24"}
{"_id": "frz4thF9bHj3Qa48i", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c<:parts) & (parts.c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2yWqnmH4LeR4Y7vPE", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/Component->this/Product}\nRight type = {this/Component}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-18 21:34:15"}
{"_id": "h6hqZcBZrbjwxLR2M", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c<:parts in iden\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "auxMRuFAhoeZ3KAGf", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:32:19"}
{"_id": "KuHS9CgxYtfqXFmTk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.parts).*parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n\tno prev[Component]\n}", "derivationOf": "p2xKZH7BYphmno342", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 23:34:06"}
{"_id": "dd8F9Bhpc9q4HBW22", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c : Component | c not in (c.parts).^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\nall c : Component | some r : Robot | r.position in c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Nc6rBGbJRWcFSpGY8", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 22:38:37"}
{"_id": "WwEzG4ZA3WvwuRyfe", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | one ((c.position) + (c.^parts).position)\n}", "derivationOf": "GvLfgav9wFpF77ebu", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:55:28"}
{"_id": "cuGG3KaZPxNy3725K", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno iden & parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "dFtoJqhmphXQ8LcuA", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:25:54"}
{"_id": "w4RsQtLP2BeHHge56", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n\tsome Component.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Ryj5r5ckDYBCmF86y", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 23:08:34"}
{"_id": "tZfX6WagvxwYrQEFB", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{univ->univ}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-12-4 18:16:06"}
{"_id": "HNPJFKpXFJjDT4K4s", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "t67WRB3GW7wnc3cSb", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:56:25"}
{"_id": "yAtB7wQdzFSiBQP3X", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | position.p.parts not in position.(p.^next).parts\n}", "derivationOf": "We6nNYbZoRiBwgp9o", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 17:54:58"}
{"_id": "edKM474cKPZT2LBpp", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  no iden & ^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  all c: Component | c.^parts.position in prevs[c.position]\n}", "derivationOf": "jnRZz86Tco7qsPP7i", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:54:08"}
{"_id": "YDfMzzpGMbEZAjKtS", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        positionr : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Position | p in Component.position => some positionr.p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "wJsGbQH3uysRpZEAu", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {this/Component}\nRight type = {this/Robot}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:11:52"}
{"_id": "D7A7FDMDKMPobGaZg", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 21:49:16"}
{"_id": "vLcM5WkygjMsjpwQR", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all p : Position | position.p).parts not in position.(p.^next).parts\n}", "derivationOf": "56GbiSvchKeyaCmG5", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 17:54:30"}
{"_id": "jhgAmmMbx4nc3HQZe", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3YEpipDicqw4dBMgz", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:34:12"}
{"_id": "6XwJgY5tzvWCcdfKj", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c & c.parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "pEPPM8Xsp27wX4aNa", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-9 11:00:30"}
{"_id": "AXRxg74uLevXqYE8h", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "oTMBWD5DngKcHjW28", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-1-8 19:41:37"}
{"_id": "pcWxThABuFz7uF72p", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tno Resource.parts\n}", "derivationOf": "JvNafw9yCSBpzJsMX", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Resource}\nRight type = {this/Component->this/Product}", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 12:49:34"}
{"_id": "n9nkEiwZSXNqXcsLG", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c.*parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "s7DF344fNmo9nvbfe", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:53:16"}
{"_id": "BHdCKsNhTJ8W6qCmp", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mEF5YAB3bPgBWhSaa", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 17:35:06"}
{"_id": "KNF9y8p4GBDtPzBqk", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component , some r:Robot | r->(c.position) in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PPe4TE573KE54Wsk5", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2019-10-17 09:59:11"}
{"_id": "7mqSiQWitFz53DaGC", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component, p:Position | c->p in Position implies some (Robot.p) \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Ni2j7y8jZePQ69De2", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Component->this/Position}\nRight type = {this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-9 11:09:14"}
{"_id": "ZCrKvtskrsBeBAx2e", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { \n  \n  iden & (Component->Product) in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "9NcYSpdP8tNsACkNR", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:35:16"}
{"_id": "C4WmQPHFxyo4qsgpj", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\n\n\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some c.position & Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c: Component| c.parts.position \n}", "derivationOf": "gDg4YJZ2mHWmNkMfF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 21:37:44"}
{"_id": "rfQnhHMvRoPZegfNR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n    iden & Product->Product in ~parts.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "55YQ69zSobG7oHKB5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-11 23:25:49"}
{"_id": "5iczzjTK9mbuWweY4", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  \t\n    iden & Component->Component in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n \t^parts & iden = none\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  Component.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \n}", "derivationOf": "aMSBGnpkz5zedASMF", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/Component->this/Product}\nRight type = {none}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-11 23:40:29"}
{"_id": "bwjHvcr3szTXYtnQg", "cmd_i": 1, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c : Component | some (c.parts)\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c : Component | no c.^(parts).c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3WLMuzD5wj7RyCMgd", "msg": "This cannot be a legal relational join where\nleft hand side is c . ^ (this/Component <: parts) (type = {this/Product})\nright hand side is c (type = {this/Component})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 11:15:55"}
{"_id": "cLD4BqAg2icvscz3M", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c: Component | some (Robot:>position).(c.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mBHbu4AxsP8CMq4hG", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/Robot->this/Position, this/Component->this/Position}", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-25 23:41:25"}
{"_id": "oTMBWD5DngKcHjW28", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \tall c:Component | c.position not in c.position.^next\n}", "derivationOf": "w6AGwcMQzPY36GYcA", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 19:41:33"}
{"_id": "xMCmnBDQJjaAbmdrz", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some c.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "2dFDBQ3uqKjN2eFWy", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 17:33:58"}
{"_id": "ho5k2n2oN8EMzPJ9N", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c:Component |some c.parts \n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c:Component | no (c.parts & c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "sybArdAAnmr2n62D2", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-19 18:57:55"}
{"_id": "eFm7KJY5bXwJnaSjZ", "cmd_i": 0, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  prevs(c.position)\n}", "derivationOf": "64Q9WgiM97wXPCMmE", "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 fun integer/prevs.\nThe parameters are\n  e: {Int}\nso the arguments cannot be empty.\n\nThis cannot be a correct call to fun ordering/prevs.\nThe parameters are\n  e: {this/Position}\nso the arguments cannot be empty.", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-12 14:24:58"}
{"_id": "m48gdH4qKs3ENQL6h", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\t\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tComponent.position in Robot.position\n} \n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "JBpN4TeY5S5yYCskt", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-18 21:56:44"}
{"_id": "orTpMxBkXhnsEH2yT", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some Robot.(c.position)}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "sHydaQmH9WvuzmhSZ", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a legal relational join where\nleft hand side is this/Robot (type = {this/Robot})\nright hand side is c . (this/Component <: position) (type = {this/Position})\n\nThis cannot be a legal relational join where\nleft hand side is this/Robot (type = {this/Robot})\nright hand side is c . (this/Robot <: position) (type = {none})", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2021-1-13 23:46:40"}
{"_id": "NJFjkMBmscrfwPgzj", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | no (c & c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component|  some (position.(c.position) & Robot)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "kobnekNdvAdmiqcF7", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 22:55:46"}
{"_id": "BcWWwXTYmBkanNWLs", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in (c.^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BoM6uG7c8B2eNqXTZ", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 12:34:51"}
{"_id": "5CDpRhc37SK4JY9ik", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "PkT3ZqsgcwA9WZ5F4", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2019-10-17 10:00:44"}
{"_id": "8Jq53fRZPCnZxkdzQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\t\n  \tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tno (iden & ^parts)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component, p : c.position | some (Robot <: position).p\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c : Component, pos : c.position, p : c.parts | p.position.lte[pos]\n}", "derivationOf": "Btj7etNccuofh3w3H", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-12-4 18:58:14"}
{"_id": "2RW89erRq8CCR6WBn", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n  all c:Component | some r:Robot | c.position in r.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "WRKvCwukbS24y44yF", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-18 21:16:08"}
{"_id": "xNheqdyvRKhbuQoHs", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Product | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | (c.parts.position) in  (prevs[c.position]+c.position)\n}", "derivationOf": "mJRpFxYFrB6BfHH6F", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:26:54"}
{"_id": "n33acXBJKduw3Rxfn", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "zmPfAAtc7G5D2LFxa", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-19 08:51:22"}
{"_id": "MtpYNtjGXiXzEQBDH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c : Component | some Robot.position & c.position\n}\n\n\npred Inv4 { \n  \tall p : Position | no (position.p <: Component).parts & (position.(p.^next) <: Component).parts\n}", "derivationOf": "Rb7HnutheSXWXWkjE", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 18:30:18"}
{"_id": "MfSZX6BgxhDmESYKD", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c: Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "EXyztPSdYDhASPowg", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-25 23:35:56"}
{"_id": "FZRRsBLepCpe4WMny", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c: Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\nall c: Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\nall c : Component | some position.(c.position) & Robot\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\nall c : Component | all x: c.parts & Component | x.position not in c.position.nexts\n}", "derivationOf": "XRLC6e8bWysRenJC7", "original": "jyS8Bmceejj9pLbTW", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "Product", "type": "Component"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "Position"}, {"parent": "univ", "type": "Product"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "Product", "type": "Resource"}, {"parent": "univ", "type": "Robot"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "univ", "type": "ordering/Ord"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Component0": {"x": 689.4401041666667, "y": 99.5}, "Component1": {"x": 551.5520833333334, "y": 199}, "Position0": {"x": 275.77604166666663, "y": 199}, "Position1": {"x": 551.5520833333334, "y": 298.5}, "Position2": {"x": 413.6640625, "y": 99.5}, "Resource": {"x": 275.77604166666663, "y": 298.5}, "Robot0": {"x": 551.5520833333334, "y": 99.5}, "Robot1": {"x": 275.77604166666663, "y": 99.5}, "ShouldBeAccepted": {"x": 137.88802083333331, "y": 99.5}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "First"}, {"color": "#0074D9", "relation": "Next"}, {"color": "#0074D9", "relation": "parts"}, {"color": "#0074D9", "relation": "position"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "First"}, {"edgeStyle": "solid", "relation": "Next"}, {"edgeStyle": "solid", "relation": "parts"}, {"edgeStyle": "solid", "relation": "position"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "First", "showAsArcs": true}, {"relation": "Next", "showAsArcs": true}, {"relation": "parts", "showAsArcs": true}, {"relation": "position", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "ordering/Ord", "showAsArcs": true}, {"relation": "Position", "showAsArcs": true}, {"relation": "Robot", "showAsArcs": true}, {"relation": "Product", "showAsArcs": true}, {"relation": "Component", "showAsArcs": true}, {"relation": "Resource", "showAsArcs": true}], "showAsAttributes": [{"relation": "position", "showAsAttributes": false}, {"relation": "parts", "showAsAttributes": false}, {"relation": "First", "showAsAttributes": false}, {"relation": "Next", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Component"}, {"border": "inherit", "type": "Product"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "Position"}, {"border": "inherit", "type": "Resource"}, {"border": "inherit", "type": "Robot"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "ordering/Ord"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "#01FF70", "type": "Component"}, {"color": "#FFDC00", "type": "Product"}, {"color": "inherit", "type": "Int"}, {"color": "#39CCCC", "type": "Position"}, {"color": "#3D9970", "type": "Resource"}, {"color": "#85144b", "type": "Robot"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "ordering/Ord"}, {"color": "inherit", "type": "seq/Int"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Component"}, {"shape": "inherit", "type": "Product"}, {"shape": "inherit", "type": "Int"}, {"shape": "rectangle", "type": "Position"}, {"shape": "inherit", "type": "Resource"}, {"shape": "hexagon", "type": "Robot"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "ordering/Ord"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Component", "visibility": false}, {"type": "Position", "visibility": false}, {"type": "Resource", "visibility": false}, {"type": "Robot", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "ordering/Ord", "visibility": true}, {"type": "Product", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}]}}, "time": "2020-12-21 11:54:07"}
{"_id": "jTj8h6rvWsgM8Q97a", "cmd_i": 3, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n  \tall c:Component | c.parts.position in c.~^position\n}", "derivationOf": "fNDB44G9u9nxxR4mA", "msg": "This name is ambiguous due to multiple matches:\nfield this/Component <: position\nfield this/Robot <: position", "original": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-1-8 19:46:13"}
{"_id": "q2m366u8rN7rmvGrT", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\nall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "jyS8Bmceejj9pLbTW", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2021-1-13 22:33:08"}
{"_id": "weznZKimxAAeN26FC", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\n\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "oGLJZyRtX7aCdtuc5", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-7 19:27:14"}
{"_id": "uzazgyKokoNFpWRYG", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "xwzz4YxsF2q4Giydc", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-9-23 20:23:40"}
{"_id": "sdkc22bCHCr5Sdpfg", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c,c1 : Component, p : Position | (c not in c.parts) and (c1 not in c1.parts) and (c->p + c1->p in position => c = c1 )\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall p : Component.position | some r : Robot | r->p in position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "mNYZtKDiHF6acnQPQ", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-14 11:20:04"}
{"_id": "EXyztPSdYDhASPowg", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  iden & Component->Product in parts.~parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  \n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "NThLPvhcekneJ3yq7", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-25 23:33:24"}
{"_id": "dFtoJqhmphXQ8LcuA", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tlet R = Component <: parts | iden in R.~R \n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "EpyPe8mqT5xsf3W5r", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:22:17"}
{"_id": "Wqf3PMPiNJAZDFBFY", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no (c<:parts).c\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3sJNrHa3SW699h6HR", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:35:31"}
{"_id": "E5saYuEgsKLJn9BLi", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n  \t\n  \tall c:Component | c.parts.position in c.position\n}", "derivationOf": "CCoE2ncmAuBSmeuYL", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 19:43:18"}
{"_id": "xHogWsmF2xy3zWAPz", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tparts in Component -> some Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some (c.position & Robot.position)\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "z7P3ijuefspRvpKkT", "original": "jyS8Bmceejj9pLbTW", "sat": 0, "time": "2020-11-12 14:20:09"}
{"_id": "53QK43YpXqA56KRtp", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tiden in parts.~parts and Component in parts.Product\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "W3PoLW2BFRHjTKBNn", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-12-4 18:20:43"}
{"_id": "NegLr9xynWhzWgdeP", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c : Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c : Component | no c<:(parts.c)\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "Wqf3PMPiNJAZDFBFY", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-18 21:36:03"}
{"_id": "rq3dHn4G42LQk4h9m", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | c.position in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | c.parts.position in c.position.~^next\n}", "derivationOf": "ft5ByRZdr98EpjnKD", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2019-10-17 10:12:58"}
{"_id": "nrAd9dMwHJYFsHqdJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component| some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.^parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component |  (c.position) in Robot.position\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    all c:Component | lone (c.^parts).position  \n}", "derivationOf": "TnWzs6sqbMLYW25SW", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2021-1-13 23:52:11"}
{"_id": "4Ey6n4JphxDLiaDT2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n  all c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n  all c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "3ZhQSnvEFGQFBZLqq", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-11-18 21:07:18"}
{"_id": "K3qHfbt6i729gQbXM", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in c.parts\n}\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "BNNBZxvtavNtMGzgj", "original": "jyS8Bmceejj9pLbTW", "sat": 1, "time": "2020-1-8 15:08:00"}
{"_id": "R9DmT3GpETsNyeumb", "cmd_i": 2, "code": "open util/ordering[Position]\n\n// Consider the following model of an automated production line\n// The production line consists of several positions in sequence\nsig Position {}\n\n// Products are either components assembled in the production line or \n// other resources (e.g. pre-assembled products or base materials)\nsig Product {}\n\n// Components are assembled in a given position from other parts\nsig Component extends Product {\n    parts : set Product,\n    position : one Position\n}\nsig Resource extends Product {}\n\n// Robots work somewhere in the production line\nsig Robot {\n        position : one Position\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\npred Inv1 { // A component requires at least one part\n\tall c:Component | some c.parts\n\t\n}\n\n\npred Inv2 { // A component cannot be a part of itself\n\tall c:Component | c not in (c.^parts)\n}\t\n\n\npred Inv3 { // The position where a component is assembled must have at least one robot\n\tall c:Component | some r.Robot |  c.position in r.position \n}\n\n\npred Inv4 { // The parts required by a component cannot be assembled in a later position\n    \n}", "derivationOf": "CtEzSfoeiuvdzY7oL", "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": "jyS8Bmceejj9pLbTW", "sat": -1, "time": "2020-11-18 23:21:23"}