{"id":116,"date":"2012-09-05T09:36:33","date_gmt":"2012-09-05T08:36:33","guid":{"rendered":"http:\/\/sites.google.com\/feeds\/content\/site\/tcsunica\/4818392088042769236"},"modified":"2013-11-22T15:37:24","modified_gmt":"2013-11-22T14:37:24","slug":"seminar-circularity-event-structures-and-contracts","status":"publish","type":"post","link":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/2012\/09\/05\/seminar-circularity-event-structures-and-contracts\/","title":{"rendered":"Seminar: Circularity, event structures, and contracts"},"content":{"rendered":"<div><table cellspacing=\"0\" class=\"sites-layout-name-one-column sites-layout-hbox\"><tbody><tr><td class=\"sites-layout-tile sites-tile-name-content-1\"><div dir=\"ltr\"><div style=\"margin:0px;font-style:normal;font-variant:normal;font-weight:normal;line-height:normal\"><div style=\"text-align:center\"><div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\">Upcoming <span>Seminar<\/span><br><\/span><\/font><\/span><\/div><\/div><div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\"><br><b>Circularity, event structures, and contracts<\/b><br><br>Sept 11, 12.00<br>Aula C - Palazzo delle Scienze - Cagliari<br><\/span><\/font><\/span><\/div><\/div><div style=\"margin:0px;font-style:normal;font-variant:normal;font-weight:normal;line-height:normal\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\"><span><br><\/span><\/span><\/font><\/span><div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\"><b><span>Tiziana Cimoli<br><\/span><\/b><\/span><\/font><\/span><\/div><\/div><div style=\"text-align:center\"><div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\">Dipartimento di Matematica e Informatica - Universit\u00e0 degli Studi di Cagliari<\/span><\/font><br><\/span><\/div><\/div><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\"><br><b><br>Abstract.<\/b> <span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">Contracts\n will play an increasingly important role in the specification and \nimplementation of distributed (cloud) systems. Quoting from [1], \u201cAbsent\n radical improvements in security technology, we expect that users will \nuse contracts and courts, rather than clever security engineering, to \nguard against provider malfeasance\u201d. Contracts describe the promised \nbehavior of a software agent, from the point of view of the actions it \nmay perform, the interactions it may participate into, and its goals. A \nprimary use of contracts if that of postponing actual interaction with \nother agents until an agreement on the mutually promised behaviour has \nbeen found. As in the real world, promises are not always kept by \nsoftware systems, and so contracts may be helpful also after the \nagreement to disciplinate the interaction among agents, and to \nestablish liability in case of violations.<\/span><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">At\n a very abstract level, a contract can be seen as sets of events, \ntogether with relations to specify the causal dependencies and the \nconflicts between events. This seems to suggest event structures - one \nof the fundamental causal models for concurrency - as a natural \ncandidate for representing contracts. For instance, one can interpret \nthe enabling b|-a of a stable event structure as the contract clause \n\u201cI will do a after you have done b\u201d.<\/span><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">However,\n event structures do not capture a crucial aspect of contracts, i.e. the\n capability of reaching an agreement in the presence of circularity in \nthe declared promises. For instance, one would expect that the contract \nwhere A promises a in change of b, and B promises b in change of a, has \nan agreement. This contrasts with the fact that the event structure with enablings b|-a and a|-b has only \none configuration - the empty set. This is because a|-b actually models \nthe fact that b may only happen after a has been done, and b|-a as the \nfact that a may happen after b - and so neither a nor b can happen. Of \ncourse, A could simply declare to do a, without asking b to be performed\n first - but this would not protect A from a misbehaving B.<\/span><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">To\n reconcile causality with circularity, A could relax her contract, i.e. \nshe could do a in change of the promise of B to do b. In this case A can\n safely do the first step, because either B does b, or he will be \nculpable of a contract violation. <\/span><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">In\n this talk we present an extension of event structures which allows for \nthis kind of reasoning. The contract a||-b (intuitively, \u201cI will do a if\n you promise to do b\u201d) reaches an agreement with the dual contract \nb||-a, while protecting the participant who offers it. We characterise \nconfigurations of these event structures as provability of formulae in \nthe contract logic PCL, an extension of intuitionistic logic with a \n\u201ccontractual implication\u201d connective.<\/span><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">We\n then focus on the problem of determining, in any state of the execution\n of a contract, which events have to be done next. This problem is \ntrivial in classical event structures (one has to do the events whose \ncauses have already been done), while it becomes relevant in the \npresence of circularity: indeed, before performing an event a (whose \ncauses have not already been done) one has to be sure that its causes \nwill be done, eventually in the future. Also in this case we devise a \nlogical characterisation via an encoding in the logic PCL.<\/span><br><br><b>References<\/b><br><br><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">[1] \u00a0Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, Matei Zaharia. A View of Cloud Computing. Communications of the ACM, Vol. 53 No. 4, Pages 50-58, 2010<\/span><\/span><\/font><\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>","protected":false},"excerpt":{"rendered":"<table cellspacing=\"0\">\n<tbody>\n<tr>\n<td>\n<div dir=\"ltr\">\n<div>\n<div>\n<div><span><span>Upcoming <span>Seminar<\/span><br \/><\/span><\/span><\/div>\n<\/div>\n<div><span><span><br \/><b>Circularity, event structures, and contracts<\/b><\/p>\n<p>Sept 11, 12.00<br \/>Aula C &#8211; Palazzo delle Scienze &#8211; Cagliari<br \/><\/span><\/span><\/div>\n<\/div>\n<div><span><span><span><br \/><\/span><\/span><\/span><\/p>\n<div><span><span><b><span>Tiziana Cimoli<br \/><\/span><\/b><\/span><\/span><\/div>\n<\/div>\n<div>\n<div><span><span>Dipartimento di Matematica e Informatica &#8211; Universit&agrave; degli Studi di Cagliari<\/span><br \/><\/span><\/div>\n<\/div>\n<p><span><span><br \/><b><br \/>Abstract.<\/b> <span>Contracts<br \/>\n will play an increasingly important role in the specification and<br \/>\nimplementation of distributed (cloud) systems. Quoting from [1], &ldquo;Absent<br \/>\n radical improvements in security technology, we expect that users will<br \/>\nuse contracts and courts, rather than clever security engineering, to<br \/>\nguard against provider malfeasance&rdquo;. Contracts describe the promised<br \/>\nbehavior of a software agent, from the point of view of the actions it<br \/>\nmay perform, the interactions it may participate into, and its goals. A<br \/>\nprimary use of contracts if that of postponing actual interaction with<br \/>\nother agents until an agreement on the mutually promised behaviour has<br \/>\nbeen found. As in the real world, promises are not always kept by<br \/>\nsoftware systems, and so contracts may be helpful also after the<br \/>\nagreement to disciplinate the interaction among agents, and to<br \/>\nestablish liability in case of violations.<\/span><\/p>\n<p><span>At<br \/>\n a very abstract level, a contract can be seen as sets of events,<br \/>\ntogether with relations to specify the causal dependencies and the<br \/>\nconflicts between events. This seems to suggest event structures &#8211; one<br \/>\nof the fundamental causal models for concurrency &#8211; as a natural<br \/>\ncandidate for representing contracts. For instance, one can interpret<br \/>\nthe enabling b|-a of a stable event structure as the contract clause<br \/>\n&ldquo;I will do a after you have done b&rdquo;.<\/span><\/p>\n<p><span>However,<br \/>\n event structures do not capture a crucial aspect of contracts, i.e. the<br \/>\n capability of reaching an agreement in the presence of circularity in<br \/>\nthe declared promises. For instance, one would expect that the contract<br \/>\nwhere A promises a in change of b, and B promises b in change of a, has<br \/>\nan agreement. This contrasts with the fact that the event structure with enablings b|-a and a|-b has only<br \/>\none configuration &#8211; the empty set. This is because a|-b actually models<br \/>\nthe fact that b may only happen after a has been done, and b|-a as the<br \/>\nfact that a may happen after b &#8211; and so neither a nor b can happen. Of<br \/>\ncourse, A could simply declare to do a, without asking b to be performed<br \/>\n first &#8211; but this would not protect A from a misbehaving B.<\/span><\/p>\n<p><span>To<br \/>\n reconcile causality with circularity, A could relax her contract, i.e.<br \/>\nshe could do a in change of the promise of B to do b. In this case A can<br \/>\n safely do the first step, because either B does b, or he will be<br \/>\nculpable of a contract violation. <\/span><\/p>\n<p><span>In<br \/>\n this talk we present an extension of event structures which allows for<br \/>\nthis kind of reasoning. The contract a||-b (intuitively, &ldquo;I will do a if<br \/>\n you promise to do b&rdquo;) reaches an agreement with the dual contract<br \/>\nb||-a, while protecting the participant who offers it. We characterise<br \/>\nconfigurations of these event structures as provability of formulae in<br \/>\nthe contract logic PCL, an extension of intuitionistic logic with a<br \/>\n&ldquo;contractual implication&rdquo; connective.<\/span><\/p>\n<p><span>We<br \/>\n then focus on the problem of determining, in any state of the execution<br \/>\n of a contract, which events have to be done next. This problem is<br \/>\ntrivial in classical event structures (one has to do the events whose<br \/>\ncauses have already been done), while it becomes relevant in the<br \/>\npresence of circularity: indeed, before performing an event a (whose<br \/>\ncauses have not already been done) one has to be sure that its causes<br \/>\nwill be done, eventually in the future. Also in this case we devise a<br \/>\nlogical characterisation via an encoding in the logic PCL.<\/span><\/p>\n<p><b>References<\/b><\/p>\n<p><span>[1] &nbsp;Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, Matei Zaharia. A View of Cloud Computing. Communications of the ACM, Vol. 53 No. 4, Pages 50-58, 2010<\/span><\/span><\/span><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"author":1325,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,13],"tags":[],"class_list":["post-116","post","type-post","status-publish","format-standard","hentry","category-events","category-httpschemas-google-comsites2008announcement","category-10-id","category-13-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/users\/1325"}],"replies":[{"embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/comments?post=116"}],"version-history":[{"count":1,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/116\/revisions"}],"predecessor-version":[{"id":137,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/116\/revisions\/137"}],"wp:attachment":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/media?parent=116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/categories?post=116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/tags?post=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}