{"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>\n<table cellspacing=\"0\" class=\"sites-layout-name-one-column sites-layout-hbox\">\n<tbody>\n<tr>\n<td class=\"sites-layout-tile sites-tile-name-content-1\">\n<div dir=\"ltr\">\n<div style=\"margin:0px;font-style:normal;font-variant:normal;font-weight:normal;line-height:normal\">\n<div style=\"text-align:center\">\n<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>\n<\/div>\n<div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\"><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><\/font><\/span><\/div>\n<\/div>\n<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><\/p>\n<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>\n<\/div>\n<div style=\"text-align:center\">\n<div style=\"text-align:center\"><span><font size=\"2\"><span style=\"font-family:verdana,sans-serif\">Dipartimento di Matematica e Informatica &#8211; Universit\u00e0 degli Studi di Cagliari<\/span><\/font><br \/><\/span><\/div>\n<\/div>\n<p><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<br \/>\n will play an increasingly important role in the specification and<br \/>\nimplementation of distributed (cloud) systems. Quoting from [1], \u201cAbsent<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\u201d. 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 style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">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\u201cI will do a after you have done b\u201d.<\/span><\/p>\n<p><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">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 style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">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 style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">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, \u201cI will do a if<br \/>\n you promise to do b\u201d) 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\u201ccontractual implication\u201d connective.<\/span><\/p>\n<p><span style=\"vertical-align:baseline;font-variant:normal;font-style:normal;background-color:transparent;text-decoration:none;font-weight:normal\">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 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>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","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}]}}