{"action":"opened","issue":{"url":"https://api.github.com/repos/hivana/b-method-exercises/issues/4","repository_url":"https://api.github.com/repos/hivana/b-method-exercises","labels_url":"https://api.github.com/repos/hivana/b-method-exercises/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/hivana/b-method-exercises/issues/4/comments","events_url":"https://api.github.com/repos/hivana/b-method-exercises/issues/4/events","html_url":"https://github.com/hivana/b-method-exercises/issues/4","id":313135379,"number":4,"title":"Exercise 10.4 ","user":{"login":"hivana","id":6864934,"avatar_url":"https://avatars1.githubusercontent.com/u/6864934?v=4","gravatar_id":"","url":"https://api.github.com/users/hivana","html_url":"https://github.com/hivana","followers_url":"https://api.github.com/users/hivana/followers","following_url":"https://api.github.com/users/hivana/following{/other_user}","gists_url":"https://api.github.com/users/hivana/gists{/gist_id}","starred_url":"https://api.github.com/users/hivana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hivana/subscriptions","organizations_url":"https://api.github.com/users/hivana/orgs","repos_url":"https://api.github.com/users/hivana/repos","events_url":"https://api.github.com/users/hivana/events{/privacy}","received_events_url":"https://api.github.com/users/hivana/received_events","type":"User","site_admin":false},"labels":[{"id":897409263,"url":"https://api.github.com/repos/hivana/b-method-exercises/labels/chapter-10","name":"chapter-10","color":"3c77c4","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-11T00:40:12Z","updated_at":"2018-04-11T00:40:12Z","closed_at":null,"author_association":"OWNER","body":"The machine _Locks_ is not robust, in the sense that some of its operations have preconditions that depend on its state. This means that some operations can be called outside their preconditions, even if the arguments they are called with have the correct type.. \r\nDescribe a robust machine _RobustLocks_, which includes _Locks_. It does not have any variables of its own, but it does introduce a set _REPORT_ = {_ok, error_} and each operation outputs one of these.\r\nIt has four operations, which correspond to the four operations of _Locks_:\r\n- **robustopen**\r\n- **robustclose**\r\n- **robustunlock**\r\n- **robustlock**\r\nEach of these operations takes a door _dd_ as input, but has only the type requirement _dd_ : _DOOR_ as its precondition. It calls the corresponding operation of _Locks_ if it is within its precondition, in which case it also issues a report ok. If it cannot call the corresponding operation of _Locks_, then it issues a report error and leaves its included state unchanged."}}
{"actor":{"display_login":"hivana"}}