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