Gerardo Schneider's publications

[1] David Lidell, Shaun Azzopardi, Nir Piterman, and Gerardo Schneider. ppltltt: Temporal testing for pure-past linear temporal logic formulae. In 21st International Symposium on Automated Technology for Verification and Analysis (ATVA'23), volume 14216, pages 276-287. LNCS, 2023. [ bib | DOI ]
This paper presents ppLTLTT, a tool for translating pure-past linear temporal logic formulae into temporal testers in the form of automata. We show how ppLTLTT can be used to easily extend existing LTL-based tools, such as LTL-to-automata translators and reactive synthesis tools, to support a richer input language. Namely, with ppLTLTT, tools that accept LTL input are also made to handle pure-past LTL as atomic formulae. While the addition of past operators does not increase the expressive power of LTL, it opens up the possibility of writing more intuitive and succinct specifications. We illustrate this intended use of ppLTLTT for Slugs, Strix, and Spot ’s command line tool LTL2TGBA by describing three corresponding wrapper tools pSlugs, pStrix, and pLTL2TGBA, that all leverage ppLTLTT. All three wrapper tools are designed to seamlessly fit this paradigm, by staying as close to the respective syntax of each underlying tool as possible.

[2] Karam Kharraz, Shaun Azzopardi, Gerardo Schneider, and Martin Leucker. Synchronous agents, verification, and blame - a deontic view. In 20th International Colloquium on Theoretical Aspects of Computing (ICTAC'23), volume 14446 of LNCS, pages 332-350. Springer, 2023. [ bib | DOI ]
A question we can ask of multi-agent systems is whether the agents’ collective interaction satisfies particular goals or specifications, which can be either individual or collective. When a collaborative goal is not reached, or a specification is violated, a pertinent question is whether any agent is to blame. This paper considers a two-agent synchronous setting and a formal language to specify when agents’ collaboration is required. We take a deontic approach and use obligations, permissions, and prohibitions to capture notions of non-interference between agents. We also handle reparations, allowing violations to be corrected or compensated. We give trace semantics to our logic, and use it to define blame assignment for violations. We give an automaton construction for the logic, which we use as the base for model checking and blame analysis. We also further provide quantitative semantics that is able to compare different interactions in terms of the required reparations.

[3] Mojtaba Eshghie, Wolfgang Ahrendt, Thomas Hildebrandt, and Gerardo Schneider. Capturing smart contract design with dcr graphs. In 21st International Conference on Software Engineering and Formal Methods (SEFM'23), volume 14323 of LNCS, pages 106-125. Springer, 2023. [ bib | DOI ]
Smart contracts manage blockchain assets and embody business processes. However, mainstream smart contract programming languages such as Solidity lack explicit notions of roles, action dependencies, and time. Instead, these concepts are implemented in program code. This makes it very hard to design and analyze smart contracts. We argue that DCR graphs are a suitable formalization tool for smart contracts because they explicitly and visually capture the mentioned features. We utilize this expressiveness to show that many common high-level design patterns representing the underlying business processes in smart-contract applications can be naturally modeled this way. Applying these patterns shows that DCR graphs facilitate the development and analysis of correct and reliable smart contracts by providing a clear and easy-to-understand specification.

[4] Hamed Arshad, Christian Johansen, Pablo Picazo-Sanchez, and Gerardo Schneider. Attribute-based encryption with enforceable obligations. Journal of Cryptographic Engineering, 13(3):343-371, 2023. [ bib | DOI | .pdf ]
Attribute-Based Encryption (ABE) is a cryptographic mechanism that provides fine-grained access control to encrypted data, which can thus be stored in, e.g., public clouds. However, ABE schemes lack the notion of obligations, which is common in Attribute-Based Access Control systems such as eXtensible Access Control Markup Language and Usage Control. Obligations are used to define and enforce extra constraints that happen before approving or denying an access request. In this paper, we propose Attribute-Based Encryption with enforceable OBligations (OB-ABE), a system for extending any classical ABE with enforceable obligations. Our system architecture has as core component trusted hardware enclaves, implemented with Intel Software Guard Extensions (SGX), used for enforcing obligations. We employ ProVerif to formally model OB-ABE and verify its main property called “enforceable obligations’’, i.e., if a message is encrypted along with an obligation, then the message can be decrypted only after enforcing the attached obligation. OB-ABE has two more properties: (i) OB-ABE is a “conservative extension’’ of the underlying ABE scheme, preserving its security properties; (ii) OB-ABE is “backward compatible’’ in the sense that any ciphertext produced by an ABE scheme can be decrypted by its extended OB-ABE version, and moreover, a ciphertext produced by an OB-ABE scheme can be decrypted by its underlying ABE scheme provided that the ciphertext does not have obligations attached. We also implement in C using Intel SGX a prototype of an OB-ABE extending the well-known Ciphertext-Policy ABE.

[5] William Hughes, Tobias Magnusson, Alejandro Russo, and Gerardo Schneider. Cheap and secure metatransactions on the blockchain using hash-based authorisation and preferred batchers. Blockchain: Research and Applications, December 2022. In Press, available online. [ bib | DOI | www: ]
Smart contracts are self-executing programs running in the blockchain allowing for decentralised storage and execution without a middleman. On-chain execution is expensive, with miners charging fees for distributed execution according to a cost model defined in the protocol. In particular, transactions have a high fixed cost. We present MultiCall, a transaction-batching interpreter for Ethereum that reduces the cost of smart contract executions by gathering multiple users’ transactions into a batch. Our current implementation of MultiCall includes the following features: the ability to emulate Ethereum call and create transactions, both from MultiCall itself and using an identity unique to the user; the ability to cheaply pay ether to other MultiCall users; and the ability to authorise emulated transactions on behalf of multiple users in a single transaction using hash-based authorisation rather than more expensive signatures. This improves upon on a previous version of MultiCall. Our experiments show that MultiCall provides a saving between 57% and 99% of the fixed transaction cost compared with the standard approach of sending Ethereum transactions directly. Besides, we also show how to prevent an economic attack exploiting the metatransaction feature, describe a generic protocol for hash-based authorisation of metatransactions, and analyse how to minimise its off-chain computational and storage cost.

Keywords: Ethereum, Domain-specific language, Interpreter, Gas optimisation
[6] Shaun Azzopardi, Nir Piterman, and Gerardo Schneider. Runtime verification meets controller synthesis. In 11th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Verification Principles (ISoLA 2022), Proceedings, Part I, volume 13701 of LNCS, pages 382-396, Rhodes, Greece, 2022. Springer. [ bib | DOI | http ]
[7] Pablo Picazo-Sanchez, Lara Ortiz-Martin, Gerardo Schneider, and Andrei Sabelfeld. Are chrome extensions compliant with the spirit of least privilege? International Journal of Information Security, 21(6):1283-1297, 2022. [ bib | DOI | http | www: ]
Extensions are small applications installed by users and enrich the user experience of browsing the Internet. Browsers expose a set of restricted APIs to extensions. To be used, extensions need to list the permissions associated with these APIs in a mandatory extension file named manifest. In particular, Chrome’s permission ecosystem was designed in the spirit of the least privilege. Yet, this paper demonstrates that 39.8% of the analyzed extensions provided by the official Web Store are compliant with the spirit of least privilege. Also, we develop: (1) a browser extension to make aware regular users of the permissions the extensions they install; (2) a web app where extensions developers can check whether their extensions are compliant with the spirit of the least privileged; and (3) a set of scripts that can be part of the vendors’ acceptance criteria such that when developers upload their extensions to the official repositories, the scripts automatically analyze the extensions and generate a report about the permissions and the usage.

[8] Hanaa Alshareef, Katja Tuma, Sandro Stucki, Gerardo Schneider, and Riccardo Scandariato. Precise analysis of purpose limitation in data flow diagrams. In ARES 2022: The 17th International Conference on Availability, Reliability and Security, pages 17:1-17:11. ACM, 2022. [ bib | DOI | http | www: ]
Data Flow Diagrams (DFDs) are primarily used for modelling functional properties of a system. In recent work, it was shown that DFDs can be used to also model non-functional properties, such as security and privacy properties, if they are annotated with appropriate security- and privacy-related information. An important privacy principle one may wish to model in this way is purpose limitation. But previous work on privacy-aware DFDs (PA-DFDs) considers purpose limitation only superficially, without explaining how the purpose of DFD activators and flows ought to be specified, checked or inferred. In this paper, we define a rigorous formal framework for (1) annotating DFDs with purpose labels and privacy signatures, (2) checking the consistency of labels and signatures, and (3) inferring labels from signatures. We implement our theoretical framework in a proof-of concept tool consisting of a domain-specific language (DSL) for specifying privacy signatures and algorithms for checking and inferring purpose labels from such signatures. Finally, we evaluate our framework and tool through a case study based on a DFD from the privacy literature.

[9] Felipe Gorostiaga, Sebastián Zudaire, César Sánchez, Gerardo Schneider, and Sebastián Uchitel. Assumption monitoring of temporal task planning using stream runtime verification. In 11th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA'22), Rhodes, Greece, October 22-30, 2022, Proceedings, Part I, volume 13701 of Lecture Notes in Computer Science, pages 397-414. Springer, 2022. [ bib | DOI | http | www: ]
Temporal task planning uses formal techniques such as reactive synthesis to guarantee that a robot will succeed in its mission. This technique requires certain explicit and implicit assumptions and simplifications about the operating environment of the robot, including its sensors and capabilities. A robot executing a plan can produce a silent mission failure, where the user may believe that the mission goals were achieved when instead the assumptions were violated at runtime. This entails that mitigation and remediation opportunities are missed. Monitoring at runtime can detect complex assumption violations and identify silent failures, but such monitoring requires the ability to describe and detect sophisticated temporal properties together with quantitative and complex data. Additional challenges include (1) ensuring the correctness of the monitors and a correct interplay between the planning execution and the monitors, and (2) that monitors run under constrained environments in terms of resources. In this paper we propose a solution based on stream runtime verification, which offers a high-level declarative language to describe sophisticated monitors together with guarantees on the execution time and memory usage. We show how monitors can be combined with temporal planning not only to monitor assumptions but also to support mitigation and remediation in UAV missions. We demonstrate our approach both in real and simulated flights for some typical mission scenarios.

[10] Stefan Chircop, Gordon J. Pace, and Gerardo Schneider. An automata-based formalism for normative documents with real-time. In Fifth International Conference on Legal Knowledge and Information Systems - JURIX'22, volume 362 of Frontiers in Artificial Intelligence and Applications, pages 158-163. IOS Press, 2022. [ bib | DOI | http | www: ]
Deontic logics have long been the tool of choice for the formal analysis of normative texts. While various such logics have been proposed many deal with time in a qualitative sense, i.e., reason about the ordering but not timing of events, it was only in the past few years that real-time deontic logics have been developed to reason about time quantitatively. In this paper we present timed contract automata, an automata-based deontic modelling approach complementing these logics with a more operational view of such normative clauses and providing a computational model more amenable to automated analysis and monitoring.

[11] Hamed Arshad, Christian Johansen, Olaf Owe, Pablo Picazo-Sanchez, and Gerardo Schneider. Semantic attribute-based encryption: A framework for combining ABE schemes with semantic technologies. Information Sciences, 616:558-576, 2022. [ bib | DOI | http | www: ]
Attribute-Based Encryption (ABE) is a cryptographic solution to protect resources in a fine-grained manner based on a set of public attributes. This is similar to attribute-based access control schemes in the sense that both rely on public attributes and access control policies to grant access to resources. However, ABE schemes do not consider the semantics of attributes provided by users or required by access structures. Such semantics not only improve the functionality by making proper access decisions but also enable cross-domain interoperability by making users from one domain able to access and use resources of other domains. This paper proposes a Semantic ABE (SABE) framework by augmenting a classical Ciphertext-Policy ABE (CP-ABE) scheme with semantic technologies using a generic procedure by which any CP-ABE scheme can be extended to an SABE. The proposed SABE framework is implemented in Java and the source code is publicly available. The experiment results confirm that the performance of the proposed framework is promising.

[12] Markus Roggenbach, Antonio Cerone, Bernd-Holger Schlingloff, Gerardo Schneider, and Siraj Ahmed Shaikh. Formal Methods for Software Engineering - Languages, Methods, Application Domains. Texts in Theoretical Computer Science. An EATCS Series. Springer, 2022. [ bib | DOI | www: ]
Software programs are formal entities with precise meanings independent of their programmers, so the transition from ideas to programs necessarily involves a formalisation at some point. The first part of this graduate-level introduction to formal methods develops an understanding of what constitutes formal methods and what their place is in Software Engineering. It also introduces logics as languages to describe reasoning and the process algebra CSP as a language to represent behaviours. The second part offers specification and testing methods for formal development of software, based on the modelling languages CASL and UML. The third part takes the reader into the application domains of normative documents, human machine interfaces, and security. Use of notations and formalisms is uniform throughout the book.

[13] Johanna Johansen, Tore Pedersen, Simone Fischer-Hübner, Christian Johansen, Gerardo Schneider, Arnold Roosendaal, Harald Zwingelberg, Anders Jakob Sivesind, and Josef Noll. A multidisciplinary definition of privacy labels. Inf. Comput. Secur., 30(3):452-469, 2022. [ bib | DOI | .pdf ]
Privacy is currently in distress and in need of rescue, much like princesses in the allfamiliar fairytales. We employ storytelling and metaphors from fairytales to make reader-friendly and streamline our arguments about how a complex concept of Privacy Labeling (the ‘knight in shining armor’) can be a solution to the current state of Privacy (the ‘princess in distress’). We give a precise definition of Privacy Labeling (PL), painting a panoptic portrait from seven different perspectives (the ‘seven helpers’): Business, Legal, Regulatory, Usability and Human Factors, Educative, Technological, and Multidisciplinary. We describe a common vision, proposing several important ‘traits of character’ of PL as well as identifying ‘undeveloped potentialities’, i.e., open problems on which the community can focus. More specifically, this position paper identifies the stakeholders of the PL and their needs with regard to privacy, describing how PL should be and look like in order to address these needs. Throughout the paper, we highlight goals, characteristics, open problems, and starting points for creating, what we consider to be, the ideal PL. In the end we present three approaches to establish and manage PL, through: self-evaluations, certifications, or community endeavors. Based on these, we sketch a roadmap for future developments.

[14] Hanaa Alshareef, Sandro Stucki, and Gerardo Schneider. Refining privacy-aware data flow diagrams. In 19th International Conference Software Engineering and Formal Methods (SEFM'21), Virtual Event, December 6-10, 2021, volume 13085 of LNCS, pages 121-140. Springer, 2021. [ bib | DOI | http ]
[15] Sandro Stucki, César Sánchez, Gerardo Schneider, and Borzoo Bonakdarpour. Gray-box monitoring of hyperproperties with an application to privacy. Formal Methods in System Design, 58(1-2):126-159, 2021. [ bib | DOI | http | www: ]
Runtime verification is a complementary approach to testing, model checking and other static verification techniques to verify software properties. Monitorability characterizes what can be verified (monitored) at run time. Different definitions of monitorability have been given both for trace properties and for hyperproperties (properties defined over sets of traces), but these definitions usually cover only some aspects of what is important when characterizing the notion of monitorability. The first contribution of this paper is a refinement of classic notions of monitorability both for trace properties and hyperproperties, taking into account, among other things, the computability of the monitor. A second contribution of our work is to show that black-box monitoring of HyperLTL (a logic for hyperproperties) is in general unfeasible, and to suggest a gray-box approach in which we combine static and runtime verification. The main idea is to call a static verifier as an oracle at run time allowing, in some cases, to give a final verdict for properties that are considered to be non-monitorable under a black-box approach. Our third contribution is the instantiation of this solution to a privacy property called distributed data minimization which cannot be verified using black-box runtime verification. We use an SMT-based static verifier as an oracle at run time. We have implemented our gray-box approach for monitoring data minimization into the proof-of-concept tool Minion. We describe the tool and apply it to a few case studies to show its feasibility.

[16] Karam Younes Kharraz, Martin Leucker, and Gerardo Schneider. Timed dyadic deontic logic. In The 34th International Conference on Legal Knowledge and Information Systems (JURIX'21), volume 346 of Frontiers in Artificial Intelligence and Applications, pages 197-204. IOS Press, 2021. [ bib | DOI | .pdf ]
In this paper, we introduce TDDL, a timed dyadic deontic logic. Our starting point is a version of a dyadic deontic logic with conditional obligations, permissions, and obligations, and with a “reparation” operator for representing contrary-to-duties and contrary-to-prohibitions. We also consider a sequence operator allowing us to define norms as sequences of individual norms and most importantly with timed intervals, allowing us to express deadlines of norms. We provide a trace semantics capturing both satisfaction and violation of norms and discuss fulfillment of TDDL specifications.

[17] Christian Colombo, Gordon J. Pace, and Gerardo Schneider. Runtime verification: Passing on the baton. In Formal Methods in Outer Space - Essays Dedicated to Klaus Havelund on the Occasion of His 65th Birthday, volume 13065 of LNCS, pages 89-107. Springer, 2021. [ bib | DOI | http ]
Twenty years have passed since the first workshop on runtime verification—the area has grown and evolved with hundreds of papers published and a sizeable number of mature tools developed. In a special occasion like this it is good to look back, but it is also good to look forward to the future. In this paper, we outline a very brief history of runtime verification, and propose a way of passing the knowledge down to future generations of academics and industry practitioners in the form of a roadmap for teaching runtime verification. The proposal, based on our experience, not only equips students with the fundamental theory underpinning runtime verification, but also ensures they have the required skills to engineer it into industrial systems. Our hope is that this would increase uptake and eventually give rise to the establishment of industry-grade tools.

[18] Shaun Azzopardi, Gordon J. Pace, Fernando Schapachnik, and Gerardo Schneider. On the specification and monitoring of timed normative systems. In 21st International Conference on Runtime Verification (RV'21), Virtual Event, volume 12974 of LNCS, pages 81-99. Springer, 2021. [ bib | DOI | http | .pdf ]
In this article we explore different issues and design choices that arise when considering how to fully embrace timed aspects in the formalisation of normative systems, e.g., by using deontic modalities, looking primarily through the lens of monitoring. We primarily focus on expressivity and computational aspects, discussing issues such as duration, superposition, conflicts, attempts, discharge, and complexity, while identifying semantic choices which arise and the challenges these pose for full monitoring of legal contracts.

[19] Sebastián Zudaire, Felipe Gorostiaga, César Sánchez, Gerardo Schneider, and Sebastián Uchitel. Assumption monitoring using runtime verification for UAV temporal task plan executions. In IEEE International Conference on Robotics and Automation, ICRA 2021, Xi'an, China, May 30 - June 5, 2021, pages 6824-6830. IEEE, 2021. [ bib | DOI | http | .pdf ]
Temporal task planning guarantees a robot will succeed in its task as long as certain explicit and implicit assumptions about the robot's operating environment, sensors, and capabilities hold. A robot executing a plan can silently fail to fulfill the task if the assumptions are violated at runtime. Monitoring assumption violations at runtime can flag silent failures and also provide mitigation and remediation opportunities. However, this requires means for describing assumptions combining temporal and quantitative data, automatic construction of correct monitors and ensuring a correct interplay between the planning execution and monitors. In this paper we propose combining temporal planning with stream runtime verification, which offers a high-level language to describe monitors together with guarantees on execution time and memory usage. We demonstrate our approach both in real and simulated flights for some typical mission scenarios.

[20] Shaun Azzopardi, Nir Piterman, and Gerardo Schneider. Incorporating monitors in reactive synthesis without paying the price. In 19th International Symposium on Automated Technology for Verification and Analysis (ATVA'21), Gold Coast, QLD, Australia, October 18-22, 2021, volume 12971 of LNCS, pages 337-353. Springer, 2021. [ bib | DOI | http | .pdf ]
Temporal synthesis attempts to construct reactive programs that satisfy a given declarative (LTL) formula. Practitioners have found it challenging to work exclusively with declarative specifications, and have found languages that combine modelling with declarative specifications more useful. Synthesised controllers may also need to work with pre-existing or manually constructed programs.In this paper we explore an approach that combines synthesis of declarative specifications in the presence of an existing behaviour model as a monitor, with the benefit of not having to reason about the state space of the monitor. We suggest a formal language with automata monitors as non-repeating and repeating triggers for LTL formulas. We use symbolic automata with memory as triggers, resulting in a strictly more expressive and succinct language than existing regular expression triggers. We give a compositional synthesis procedure for this language, where reasoning about the monitor state space is minimal. To show the advantages of our approach we apply it to specifications requiring counting and constraints over arbitrarily long sequence of events, where we can also see the power of parametrisation, easily handled in our approach. We provide a tool to construct controllers (in the form of symbolic automata) for our language.

[21] William Hughes, Alejandro Russo, and Gerardo Schneider. Multicall: A transaction-batching interpreter for ethereum. In BSCI'21: Proceedings of the 3rd ACM International Symposium on Blockchain and Secure Critical Infrastructure, Virtual Event, Hong Kong, June 7, 2021, pages 25-35. ACM, 2021. [ bib | DOI | http | .pdf ]
Smart contracts are self-executing programs running in the blockchain allowing for decentralised storage and execution without a middleman. On-chain execution is expensive, with miners charging fees for distributed execution according to a cost model defined in the protocol. In particular, transactions have a high fixed cost. In this paper we present MultiCall, an interpreter that reduces the cost of smart contract execution by emulating sequences of transactions from multiple users in one transaction. We have implemented and integrated MultiCall into Ethereum. Our evaluation shows that using MultiCall provides a saving between 56.8% and 98.9% of the fixed per-Transaction cost compared to the standard approach of sending transactions individually.

[22] Hanaa Alshareef, Sandro Stucki, and Gerardo Schneider. Transforming data flow diagrams for privacy compliance. In 9th International Conference on Model-Driven Engineering and Software Development (MODELSWARD'21), pages 207-215. SCITEPRESS, 2021. [ bib | DOI | http | .pdf ]
Most software design tools, as for instance Data Flow Diagrams (DFDs), are focused on functional aspects and cannot thus model non-functional aspects like privacy. In this paper, we provide an explicit algorithm and a proof-of-concept implementation to transform DFDs into so-called Privacy-Aware Data Flow Diagrams (PA-DFDs). Our tool systematically inserts privacy checks to a DFD, generating a PA-DFD. We apply our approach to two realistic applications from the construction and online retail sectors.

[23] Hanaa Alshareef, Raúl Pardo, Pablo Picazo-Sanchez, and Gerardo Schneider. A collaborative access control framework for online social networks. Journal of Logical and Algebraic Methods in Programming, 114, May 2020. [ bib | DOI | http | .pdf ]
Most Online Social Networks allow users to set their privacy settings concerning posting information, but current implementations do not allow a fine grained enforcement in case the posted item concerns other users. In this paper we propose a new collaborative access control framework that takes into account the relation of multiple users for viewing as well as for sharing items, eventually solving conflicts in the privacy settings of the users involved. Our solution relies on two algorithms, one for viewing and another one for sharing items. We provide an evaluation of these algorithms where we demonstrate how varying some of the parameters directly influences the decision of viewing or sharing an item. Last but not least, we present a proof-of-concept implementation of our approach in an open source social network called Diaspora.

[24] Pablo Picazo-Sanchez, Gerardo Schneider, and Andrei Sabelfeld. HMAC and "secure preferences": Revisiting chromium-based browsers security. In 19th International Conference on Cryptology and Network Security (CANS'20), volume 12579 of LNCS, pages 107-126. Springer, 2020. [ bib | DOI | http | .pdf ]
Google disabled years ago the possibility to freely modify some internal configuration parameters, so options like silently (un)install browser extensions, changing the home page or the search engine were banned. This capability was as simple as adding/removing some lines from a plain text file called Security Preference File (SPF) automatically created by Chromium the first time it was launched. Concretely, Google introduced a security mechanism based on a cryptographic algorithm named HMAC to avoid users and applications other than the browser modifying the SPF. This paper demonstrates that it is possible to perform browser hijacking, browser extension fingerprinting, and remote code execution attacks as well as silent browser extensions (un)installation by coding a platform-independent proof-of-concept changeware that exploits the HMAC, allowing for free modification of the SPF. Last but not least, we analyze the security of the four most important Chromium-based browsers: Brave, Chrome, Microsoft Edge, and Opera, concluding that all of them suffer from the same security pitfall.

[25] Farzane Karami, Olaf Owe, and Gerardo Schneider. Information-flow control by means of security wrappers for active object languages with futures. In 25th Nordic Conference on Secure IT Systems (NordSec'20), volume 12556 of LNCS, pages 74-91. Springer, 2020. [ bib | DOI | http | .pdf ]
This paper introduces a run-time mechanism for preventing leakage of secure information in distributed systems. We consider a general concurrency language model where concurrent objects interact by asynchronous method calls and futures. The aim is to prevent leakage of secure information to low-level viewers. The approach is based on a notion of security wrappers, where a wrapper encloses an object or a component and controls its interactions with the environment. Our run-time system automatically adds a wrapper to an insecure component.The wrappers are invisible such that a wrapped component and its environment are not aware of it. The security policies of a wrapper are formalized based on a notion of security levels. At run-time, future components will be wrapped upon need, and objects of unsafe classes will be wrapped, using static checking to limit the number of unsafe classes and thereby reducing run-time overhead. We define an operational semantics and sketch a proof of non-interference. A service provider may use wrappers to protect its services in an insecure environment, and vice-versa: a system platform may use wrappers to protect itself from insecure service providers.

[26] Gordon J. Pace, César Sánchez, and Gerardo Schneider. Reliable smart contracts. In Leveraging Applications of Formal Methods, Verification and Validation: Applications - 9th International Symposium on Leveraging Applications of Formal Methods, ISoLA 2020, Proceedings, Part III, volume 12478 of LNCS, pages 3-8. Springer, 2020. [ bib | DOI | http | .pdf ]
The rise of smart contracts executed on blockchain and other distributed ledger technologies enabled trustless yet decentralised computation. Various applications take advantage of this computational model, including enforced financial contracts, self-sovereign identity and voting. But smart contracts are nothing but software running on a blockchain, with risks of malfunction due to bugs in the code. Compared to traditional systems, there is an additional risk in that erroneous computation or transactions triggered by a smart contract cannot be easily rolled back due to the immutability of the underlying execution model. This ISoLA track brings together a number of experts in the field of smart contract reliability and verification to discuss the state-of-the-art in smart contract dependability and discuss research challenges and future directions.

[27] Piergiuseppe Mallozzi, Pierluigi Nuzzo, Patrizio Pelliccione, and Gerardo Schneider. Crome: Contract-based robotic mission specification. In 18th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE'20), pages 1-11. IEEE, 2020. [ bib | DOI | http | .pdf ]
We address the problem of automatically constructing a formal robotic mission specification in a logic language with precise semantics starting from an informal description of the mission requirements. We present CROME (Contract-based RObotic Mission spEcification), a framework that allows capturing mission requirements in terms of goals by using specification patterns, and automatically building linear temporal logic mission specifications conforming with the requirements. CROME leverages a new formal model, termed Contract-based Goal Graph (CGG), which enables organizing the requirements in a modular way with a rigorous compositional semantics. By relying on the CGG, it is then possible to automatically: i) check the feasibility of the overall mission, ii) further refine it from a library of pre-defined goals, and iii) synthesize multiple controllers that implement different parts of the mission at different abstraction levels, when the specification is realizable. If the overall mission is not realizable, CROME identifies mission scenarios, i.e., sub-missions that can be realizable. We illustrate the effectiveness of our methodology and supporting tool on a case study.

[28] Pablo Picazo-Sanchez, Juan Tapiador, and Gerardo Schneider. After you, please: Browser extensions order attacks and countermeasures. International Journal of Information Security, 19(6):623-638, 2020. [ bib | DOI | http | .pdf ]
Browser extensions are small applications executed in the browser context that provide additional capabilities and enrich the user experience while surfing the web. The acceptance of extensions in current browsers is unquestionable. For instance, Chrome's official extension repository has more than 63,000 extensions, with some of them having more than 10M users. When installed, extensions are pushed into an internal queue within the browser. The order in which each extension executes depends on a number of factors, including their relative installation times. In this paper, we demonstrate how this order can be exploited by an unprivileged malicious extension (i.e., one with no more permissions than those already assigned when accessing web content) to get access to any private information that other extensions have previously introduced. We propose a solution that does not require modifying the core browser engine, since it is implemented as another browser extension. We prove that our approach effectively protects the user against usual attackers (i.e., any other installed extension) as well as against strong attackers having access to the effects of all installed extensions (i.e., knowing who did what). We also prove soundness and robustness of our approach under reasonable assumptions.

[29] Pablo Picazo-Sánchez, Gerardo Schneider, and Juan Tapiador. After you, please: Browser extensions order attacks and countermeasures. Technical Report abs/1908.02205, CoRR - arXiv.org, August 2019. [ bib | www: ]
[30] César Sánchez, Gerardo Schneider, Wolfgang Ahrendt, Ezio Bartocci, Domenico Bianculli, Christian Colombo, Yliés Falcone, Adrian Francalanza, Srdan Krstić, Dejan Nickovic, Gordon J. Pace, Jose Rufino, Julien Signoles, Dmitriy Traytel, and Alexander Weiss. A Survey of Challenges for Runtime Verification from Advanced Application Domains (Beyond Software). Formal Methods in System Design, 54(3):279-335, August 2019. Open source, freely available at .bib | DOI | .pdf ]
Runtime verification is an area of formal methods that studies the dynamic analysis of execution traces against formal specifications. Typically, the two main activities in runtime verification efforts are the process of creating monitors from specifications, and the algorithms for the evaluation of traces against the generated monitors. Other activities involve the instrumentation of the system to generate the trace and the communication between the system under analysis and the monitor. Most of the applications in runtime verification have been focused on the dynamic analysis of software, even though there are many more potential applications to other computational devices and target systems. In this paper we present a collection of challenges for runtime verification extracted from concrete application domains, focusing on the difficulties that must be overcome to tackle these specific challenges. The computational models that characterize these domains require to devise new techniques beyond the current state of the art in runtime verification.

[31] Lara Ortiz-Martin, Pablo Picazo-Sanchez, Pedro Peris-Lopez, Juan Tapiador, and Gerardo Schneider. Feasibility analysis of inter-pulse intervals based solutions for cryptographic token generation by two electrocardiogram sensors. Future Generation Comp. Syst., 96:283-296, 2019. [ bib | DOI | http | .pdf ]
In this paper we address the problem of how two devices that are sensing the same heart signal can generate the same cryptographic token by extracting them from the Inter-Pulse Intervals (IPIs) of each cardiac signal. Our analysis is based on the use of a run-time monitor, which is extracted from a formal model and verified against predefined properties, combined with a fuzzy extractor to improve the final result. We first show that it is impossible, in general, to correct the differences between the IPIs derived from two captured electrocardiogram (ECG) signals when using only error correction techniques, thus being impossible to corroborate previous claims on the feasibility of this approach. Then, we provide a large-scale evaluation of the proposed method (run-time monitor and fuzzy extractor) over 19 public databases from the Physionet repository containing heart signals. The results clearly show the practicality of our proposal achieving a 91% of synchronization probability for healthy individuals. Additionally, we also conduct an experiment to check how long the sensors should record the heart signal in order to generate tokens of 32, 64 and 128 bits. Contrarily to what it is usually assumed (6, 12, and 24 s for individuals with a heart rate of 80 beats-per-minute), the sensors have to wait 13, 28 and 56.5 s on median, respectively, to derive the same token from both sensors.

[32] Wolfgang Ahrendt, Richard Bubel, Joshua Ellul, Gordon J. Pace, Raúl Pardo, Vincent Rebiscoul, and Gerardo Schneider. Verification of smart contract business logic: Exploiting a java source code verifier. In Eigth International Conference on Fundamentals of Software Engineering (FSEN'19), volume 11761 of LNCS, pages 228-243. Springer, 2019. [ bib | DOI | .pdf ]
Smart contracts have been argued to be a means of building trust between parties by providing a self-executing equivalent of legal contracts. And yet, code does not always perform what it was originally intended to do, which resulted in losses of millions of dollars. Static verification of smart contracts is thus a pressing need. This paper presents an approach to verifying smart contracts written in Solidity by automatically translating Solidity into Java and using KeY, a deductive Java verification tool. In particular, we solve the problem of rolling back the effects of aborted transactions by exploiting KeY's native support of JavaCard transactions. We apply our approach to a smart contract which automates a casino system, and discuss how the approach addresses a number of known shortcomings of smart contract development in Solidity.

[33] Piergiuseppe Mallozzi, Ezequiel Castellano, Patrizio Pelliccione, Gerardo Schneider, and Kenji Tei. A runtime monitoring framework to enforce invariants on reinforcement learning agents exploring complex environments. In Proceedings of the 2nd International Workshop on Robotics Software Engineering (RoSE@ICSE 2019), pages 5-12. IEEE / ACM, 2019. [ bib | DOI | http | .pdf ]
Without prior knowledge of the environment, a software agent can learn to achieve a goal using machine learning. Model-free Reinforcement Learning (RL) can be used to make the agent explore the environment and learn to achieve its goal by trial and error. Discovering effective policies to achieve the goal in a complex environment is a major challenge for RL. Furthermore, in safety-critical applications, such as robotics, an unsafe action may cause catastrophic consequences in the agent or in the environment. In this paper, we present an approach that uses runtime monitoring to prevent the reinforcement learning agent to perform “wrong" actions and to exploit prior knowledge to smartly explore the environment. Each monitor is defined by a property that we want to enforce to the agent and a context. The monitors are orchestrated by a meta-monitor that activates and deactivates them dynamically according to the context in which the agent is learning. We have evaluated our approach by training the agent in randomly generated learning environments. Our results show that our approach blocks the agent from performing dangerous and safety-critical actions in all the generated environments. Besides, our approach helps the agent to achieve its goal faster by providing feedback and shaping its reward during learning.

[34] Sandro Stucki, César Sánchez, Gerardo Schneider, and Borzoo Bonakdarpour. Gray-box monitoring of hyperproperties. In Formal Methods (FM'19), volume 11800 of LNCS, pages 406-424. Springer, 2019. [ bib | DOI | .pdf ]
Many important system properties, particularly in security and privacy, cannot be verified statically. Therefore, runtime verification is an appealing alternative. Logics for hyperproperties, such as HyperLTL, support a rich set of such properties. We first show that black-box monitoring of HyperLTL is in general unfeasible, and suggest a gray-box approach. Gray-box monitoring implies performing analysis of the system at run-time, which brings new limitations to monitorabiliy (the feasibility of solving the monitoring problem). Thus, as another contribution of this paper, we refine the classic notions of monitorability, both for trace properties and hyperproperties, taking into account the computability of the monitor. We then apply our approach to monitor a privacy hyperproperty called distributed data minimality, expressed as a HyperLTL property, by using an SMT-based static verifier at runtime.

[35] Christian Colombo, Yliès Falcone, Martin Leucker, Giles Reger, César Sánchez, Gerardo Schneider, and Volker Stolz. COST action IC1402 runtime verification beyond monitoring. In 18th International Conference on Runtime Verification (RV'18), volume 11237 of LNCS, pages 18-26. Springer, 2018. [ bib | DOI | .pdf ]
In this paper we report on COST Action IC1402 which studies Runtime Verification approaches beyond Monitoring. COST Actions are funded by the European Union and are an efficient networking instrument for researchers, engineers and scholars to cooperate and coordinate research activities. This COST action IC1402 lasted over the past four years, involved researchers from 27 different European countries and Australia and allowed to have many different working group meetings, workshops and individual visits.

[36] Srinivas Pinisetty, Partha S. Roop, Vidula Sawant, and Gerardo Schneider. Security of pacemakers using runtime verification. In 16th ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE'18), pages 51-61. IEEE, 2018. [ bib | DOI | .pdf ]
The US Food and Drug Administration (FDA) recently recalled approximately 465,000 pacemakers that were vulnerable to hacking. It was reported that hackers could either pace the devices rapidly inducing arrhythmia or could drain the battery. Such actions would compromise the health and well being of the patient concerned. Considering this, techniques to ensure the security of implantable medical devices is an emerging area of research. To the best of our knowledge, existing techniques lack the formal rigour for ensuring the safety and security of such systems. While methods exist for formal verification of pacemaker software, these are not suitable to prevent security vulnerabilities. To this end we develop a run-time verification based approach. Our approach proposes a wearable device that non-invasively senses the familiar ECG signals in order to determine if a pacemaker has been compromised. We develop a set of timed policies to be monitored at run-time. We provide a methodology for the design of the wearable device and results demonstrate the technical feasibility of the developed concept.

[37] Wolfgang Ahrendt, Gordon J. Pace, and Gerardo Schneider. Smart contracts: A killer application for deductive source code verification. In Principled Software Development - Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday, pages 1-18. Springer, 2018. [ bib | DOI | .pdf ]
Smart contracts are agreements between parties which, not only describe the ideal behaviour expected from those parties, but also automates such ideal performance. Blockchain, and similar distributed ledger technologies have enabled the realisation of smart contracts without the need of trusted parties - typically using computer programs which have access to digital assets to describe smart contracts, storing and executing them in a transparent and immutable manner on a blockchain. Many approaches have adopted fully fledged programming languages to describe smart contract, thus inheriting from software the challenge of correctness and verification - just as in software systems, in smart contracts mistakes happen easily, leading to unintended and undesirable behaviour. Such wrong behaviour may show accidentally, but as the contract code is public, malicious users can seek for vulnerabilities to exploit, causing severe damage. This is witnessed by the increasing number of real world incidents, many leading to huge financial losses. As in critical software, the formal verification of smart contracts is thus paramount. In this paper we argue for the use of deductive software verification as a way to increase confidence in the correctness of smart contracts. We describe challenges and opportunities, and a concrete research program, for deductive source code level verification, focussing on the most widely used smart contract platform and language, Ethereum and Solidity.

[38] Gerardo Schneider. Is Privacy by Construction Possible? In 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - Track: X-by-Construction (ISoLA'18, part I, volume 11244 of LNCS, pages 471-485. Springer, 2018. [ bib | DOI | .pdf ]
Finding suitable ways to handle personal data in conformance with the law is challenging. The European General Data Protection Regulation (GDPR), enforced since May 2018, makes it mandatory to citizens and companies to comply with the privacy requirements set in the regulation. For existing systems the challenge is to be able to show evidence that they are already complying with the GDPR, or otherwise to work towards compliance by modifying their systems and procedures, or alternatively reprogramming their systems in order to pass the eventual controls. For those starting new projects the advice is to take privacy into consideration since the very beginning, already at design time. This has been known as Privacy by Design (PbD). The main question is how much privacy can you effectively achieve by using PbD, and in particular whether it is possible to achieve Privacy by Construction. In this paper I give my personal opinion on issues related to the ambition of achieving Privacy by Construction.

[39] Gordon Pace, Pablo Picazo-Sanchez, and Gerardo Schneider. Migrating Monitors + ABE: A Suitable Combination for Secure IoT? In 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - Track: RV-TheToP: Runtime Verification from the Theory To the industry Practice (ISoLA'18, part IV, volume 11247 of LNCS, pages 19-24. Springer, 2018. [ bib | DOI | .pdf ]
The rise of the Internet of Things brings about various challenges concerning safety, reliability and dependability as well as security and privacy. Reliability and safety issues could be addressed by using different verification techniques, both statically and at runtime. In particular, migrating monitors could effectively be used not only for verification purposes, but also as a way to gather information and to enforce certain policies. The addition of monitors, however, might introduce additional security and privacy threats. In this extended abstract we briefly sketch ideas on how to combine migrating monitors with a public cryptographic scheme named Attribute-Based Encryption as a way to ensure monitors are run by the right devices in a secure and private manner.

[40] Borzoo Bonakdarpour, César Sánchez, and Gerardo Schneider. Monitoring Hyperproperties by Combining Static Analysis and Runtime Verification. In 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - Track: A Broader View on Verification: From Static to Runtime and Back (ISoLA'18, part II), volume 11245 of LNCS, pages 8-27. Springer, 2018. [ bib | DOI | .pdf ]
Hyperproperties are properties whose reasoning involve sets of traces. Examples of hyperproperties include information-flow security properties, properties of coding/decoding systems, linearizability and other consistency criteria, as well as privacy properties like data minimality. We study the problem of runtime verification of hyperproperties expressed as HyperLTL formulas that involve quantifier alternation. We first show that even for a simple class of temporal formulas, virtually no for allthere exists property can be monitored, independently of the observations performed. To manage this problem, we propose to use a combination of static analysis with runtime verification. By using static analysis/verification, one typically obtains a model of the system that allows to limit the source of “hypothetical” traces to a sound over-approximation of the traces of the system. This idea allows to extend the effective monitorability of hyperproperties to a larger class of systems and properties. We exhibit some examples where instances of this idea have been exploited, and discuss preliminary work towards a general method. A second contribution of this paper is the idea of departing from the convention that all traces come from executions of a single system. We show cases where traces are extracted from the observed traces of agents, from projections of a single global trace, or from executions of different (but related) programs.

[41] Piergiuseppe Mallozzi, Raúl Pardo, Vincent Duplessis, Patrizio Pelliccione, and Gerardo Schneider. MoVEMo: A Structured Approach for Engineering Reward Functions. In Second IEEE International Conference on Robotic Computing (IRC'18), pages 250-257. IEEE Computer Society, 2018. [ bib | DOI | http | .pdf ]
Reinforcement learning (RL) is a machine learning technique that has been increasingly used in robotic systems. In reinforcement learning, instead of manually pre-program what action to take at each step, we convey the goal a software agent in terms of reward functions. The agent tries different actions in order to maximize a numerical value, i.e. the reward. A misspecified reward function can cause problems such as reward hacking, where the agent finds out ways that maximize the reward without achieving the intended goal. As RL agents become more general and autonomous, the design of reward functions that elicit the desired behaviour in the agent becomes more important and cumbersome. In this paper, we present a technique to formally express reward functions in a structured way; this stimulates a proper reward function design and as well enables the formal verification of it. We start by defining the reward function using state machines. In this way, we can statically check that the reward function satisfies certain properties, e.g., high-level requirements of the function to learn. Later we automatically generate a runtime monitor-which runs in parallel with the learning agent-that provides the rewards according to the definition of the state machine and based on the behaviour of the agent. We use the UPPAAL model checker to design the reward model and verify the TCTL properties that model high-level requirements of the reward function and LARVA to monitor and enforce the reward model to the RL agent at runtime.

[42] Raúl Pardo, César Sánchez, and Gerardo Schneider. Timed Epistemic Knowledge Bases for Social Networks. In Formal Methods (FM'18), volume 10951 of LNCS, pages 185-202. Springer, 2018. [ bib | DOI | http | .pdf ]
We present an epistemic logic equipped with time-stamps in atoms and epistemic operators, which enables reasoning about the moments at which events happen and knowledge is acquired or deduced. Our logic includes both an epistemic operator K and a belief operator B, to capture the disclosure of inaccurate information. Our main motivation is to describe rich privacy policies in online social networks (OSNs). Most of today's privacy policy mechanisms in existing OSNs allow only static policies. In our logic it is possible to express rich dynamic policies in terms of the knowledge available to the different users and the precise time of actions and deductions. Our framework can be instantiated for different OSNs by specifying the effect of the actions in the evolution of the social network and in the knowledge disclosed to each user. We present an algorithm for deducing knowledge and propagating beliefs, which can also be instantiated with different variants of how the epistemic information is preserved through time. Policies are modelled as formulae in the logic, which are interpreted over timed traces. Finally, we show that the model checking problem for this logic, and in consequence policy conformance, is decidable.

[43] Mauricio Chimento, Wolfgang Ahrendt, and Gerardo Schneider. Testing Meets Static and Runtime Verification. In 6th Conference on Formal Methods in Software Engineering (FormaliSE@ICSE'18), pages 30-39. ACM, 2018. [ bib | DOI | http | .pdf ]
Test driven development (TDD) is a technique where test cases are used to guide the development of a system. This technique introduces several advantages at the time of developing a system, e.g. writing clean code, good coverage for the features of the system, and evolutionary development. In this paper we show how the capabilities of a testing focused development methodology based on TDD and model-based testing, can be enhanced by integrating static and runtime verification into its workflow. Considering that the desired system properties capture data- as well as control-oriented aspects, we integrate TDD with (static) deductive verification as an aid in the development of the data-oriented aspects, and we integrate model-based testing with runtime verification as an aid in the development of the control-oriented aspects. As a result of this integration, the proposed development methodology features the benefits of TDD and model-based testing, enhanced with, for instance, early detection of bugs which may be missed by TDD, regarding data aspects, and the validation of the overall system with respect to the model, regarding the control aspects.

[44] Srinivas Pinisetty, David Sands, and Gerardo Schneider. Runtime Verification of Hyperproperties for Deterministic Programs. In 6th Conference on Formal Methods in Software Engineering (FormaliSE@ICSE'18), pages 20-29. ACM, 2018. [ bib | DOI | http | .pdf ]
In this paper, we consider the runtime verification problem of safety hyperproperties for deterministic programs. Several security and information-flow policies such as data minimality, non-interference, integrity, and software doping are naturally expressed formally as safety hyperproperties. Although there are monitoring results for hyperproperties, the algorithms are very complex since these are properties over set of traces, and not over single traces. For the deterministic input-output programs that we consider, and the specific safety hyperproperties we are interested in, the problem can be reduced to monitoring of trace properties. In this paper, we present a simpler monitoring approach for safety hyperproperties of deterministic programs. The approach involves transforming the given safety hyperproperty into a trace property, extracting a characteristic predicate for the given hyperproperty, and providing a parametric monitor taking such predicate as parameter. For any hyperproperty in the considered subclass, we show how runtime verification monitors can be synthesised. We have implemented our approach in the form of a parameterised monitor for the given class, and have applied it to a number of hyperproperties including data minimisation, non-interference, integrity and software doping. We show results concerning both offline and online monitoring.

[45] Srinivas Pinisetty, Thibaud Antignac, David Sands, and Gerardo Schneider. Monitoring Data Minimisation. Technical Report abs/1801.02484, CoRR - arXiv.org, 2018. [ bib | arXiv | http ]
[46] Thibaud Antignac, Riccardo Scandariato, and Gerardo Schneider. Privacy Compliance via Model Transformations. In International Workshop on Privacy Engineering (IWPE'18) at IEEE EuroS&P Workshops, pages 120-126. IEEE, 2018. [ bib | DOI | http | .pdf ]
Due to the upcoming, more restrictive regulations (like the European GDPR), designing privacy preserving architectures for information systems is becoming a pressing concern for practitioners. In particular, verifying that a design is compliant with the regulations might be a challenging task for engineers. This work presents an approach based on model transformations, which guarantee that an architectural design encompasses regulation-oriented principles such as purpose limitation, or accountability of the data controller. Our work improves the state of the art along two main dimensions. The approach we propose (i) embeds privacy principles coming from regulations, thus helping to bridge the gap between the technical and the legal worlds, (ii) systematize the embedding of the privacy principles coming from regulations, thus enabling a constructive approach to privacy by design.

[47] John J. Camilleri, Mohammad Reza Haghshenas, and Gerardo Schneider. A Web-Based Tool for Analysing Normative Documents in English. In The 33rd ACM/SIGAPP Symposium On Applied Computing -Software Verification and Testing track (SAC-SVT'18), pages 1865-1872. ACM, 2018. [ bib | DOI | http | .pdf ]
Our goal is to use formal methods to analyse normative documents written in English, such as privacy policies and regulations. This requires the combination of a number of different elements, including information extraction from natural language, formal languages for model representation, and an interface for property specification and verification. A number of components for performing these tasks have separately been developed: a natural language extraction tool, a suitable formalism for representing such documents, an interface for building models in this formalism, and methods for answering queries asked of a given model. In this work, each of these concerns is brought together in a web-based tool, providing a single interface for analysing normative texts in English. Through the use of a running example, we describe each component and demonstrate the workflow established by our tool.

[48] John J. Camilleri and Gerardo Schneider. Modelling and analysis of normative documents. Journal of Logical and Algebraic Methods in Programming, 91:33-59, October 2017. [ bib | DOI | http | .pdf ]
We are interested in using formal methods to analyse normative documents or contracts such as terms of use, privacy policies, and service agreements. We begin by modelling such documents in terms of obligations, permissions and prohibitions of agents over actions, restricted by timing constraints and including potential penalties resulting from the non-fulfilment of clauses. This is done using the C-O Diagram formalism, which we have extended syntactically and for which we have defined a new trace semantics. Models in this formalism can then be translated into networks of timed automata, and we have a complete working implementation of this translation. The network of automata is used as a specification of a normative document, making it amenable to verification against given properties. By applying this approach to a case study from a real-world contract, we show the kinds of analysis possible through both syntactic querying on the structure of the model, as well as verification of properties using Uppaal.

[49] Raúl Pardo and Gerardo Schneider. Model Checking Social Network Models. In Eighth International Symposium on Games, Automata, Logics and Formal Verification (GandALF'17), volume 256 of EPTCS, pages 238-252, September 2017. [ bib | DOI | http | .pdf ]
A social network service is a platform to build social relations among people sharing similar interests and activities. The underlying structure of a social networks service is the social graph, where nodes represent users and the arcs represent the users' social links and other kind of connections. One important concern in social networks is privacy: what others are (not) allowed to know about us. The “logic of knowledge” (epistemic logic) is thus a good formalism to define, and reason about, privacy policies. In this paper we consider the problem of verifying knowledge properties over social network models (SNMs), that is social graphs enriched with knowledge bases containing the information that the users know. More concretely, our contributions are: i) We prove that the model checking problem for epistemic properties over SNMs is decidable; ii) We prove that a number of properties of knowledge that are sound w.r.t. Kripke models are also sound w.r.t. SNMs; iii) We give a satisfaction-preserving encoding of SNMs into canonical Kripke models, and we also characterise which Kripke models may be translated into SNMs; iv) We show that, for SNMs, the model checking problem is cheaper than the one based on standard Kripke models. Finally, we have developed a proof-of-concept implementation of the model-checking algorithm for SNMs.

[50] Raúl Pardo, Musard Balliu, and Gerardo Schneider. Formalising privacy policies in social networks. Journal of Logical and Algebraic Methods in Programming, 90:125-157, August 2017. [ bib | DOI | http | .pdf ]
Social Network Services (SNS) have changed the way people communicate, bringing many benefits but also new concerns. Privacy is one of them. We present a framework to write privacy policies for {SNSs} and to reason about such policies in the presence of events making the network evolve. The framework includes a model of SNSs, a logic to specify properties and to reason about the knowledge of the users (agents) of the SNS, and a formal language to write privacy policies. Agents are enhanced with a reasoning engine allowing the inference of knowledge from previously acquired knowledge. To describe the way {SNSs} may evolve, we provide operational semantics rules which are classified into four categories: epistemic, topological, policy, and hybrid, depending on whether the events under consideration change the knowledge of the SNS' users, the structure of the social graph, the privacy policies, or a combination of the above, respectively. We provide specific rules for describing Twitter's behaviour, and prove that it is privacy-preserving (i.e., that privacy is preserved under every possible event of the system). We also show how Twitter and Facebook are not privacy-preserving in the presence of additional natural privacy policies.

[51] Wolfgang Ahrendt, Mauricio Chimento, Gordon Pace, and Gerardo Schneider. Verifying Data- and Control-Oriented Properties Combining Static and Runtime Verification: Theory and Tools. Formal Methods in System Design, 51(1):200-265, August 2017. [ bib | DOI | .pdf ]
Static verification techniques are used to analyse and prove properties about programs before they are executed. Many of these techniques work directly on the source code and are used to verify data-oriented properties over all possible executions. The analysis is necessarily an over-approximation as the real executions of the program are not available at analysis time. In contrast, runtime verification techniques have been extensively used for control-oriented properties, analysing the current execution path of the program in a fully automatic manner. In this article, we present a novel approach in which data-oriented and control-oriented properties may be stated in a single formalism amenable to both static and dynamic verification techniques. The specification language we present to achieve this that of ppDATEs, which enhances the control-oriented property language of DATEs, with data-oriented pre/postconditions. For runtime verification of ppDATE specifications, the language is translated into a DATE. We give a formal semantics to ppDATEs, which we use to prove the correctness of our translation from ppDATEs to DATEs. We show how ppDATE specifications can be analysed using a combination of the deductive theorem prover KeY and the runtime verification tool LARVA. Verification is performed in two steps: KeY first partially proves the data-oriented part of the specification, simplifying the specification which is then passed on to LARVA to check at runtime for the remaining parts of the specification including the control-oriented aspects. We show the applicability of our approach on two case studies.

[52] Raúl Pardo, César Sánchez, and Gerardo Schneider. Timed Epistemic Knowledge Bases for Social Networks (Extended Version). Technical Report abs/1708.04070, CoRR - arXiv.org, 2017. [ bib | arXiv | http ]
[53] John J. Camilleri, Mohammad Reza Haghshenas, and Gerardo Schneider. A Web-Based Tool for Analysing Normative Documents in English. Technical Report abs/1707.03997, CoRR - arXiv.org, 2017. [ bib | arXiv | http ]
[54] Bjørnar Luteberget, John J. Camilleri, Christian Johansen, and Gerardo Schneider. Participatory Verification of Railway Infrastructure by Representing Regulations in RailCNL. In 15th International Conference on Software Engineering and Formal Methods, (SEFM'17), volume 10469 of LNCS, pages 87-103. Springer, 2017. [ bib | DOI | http | .pdf ]
Designs of railway infrastructure (tracks, signalling and control systems, etc.) need to comply with comprehensive sets of regulations describing safety requirements, engineering conventions, and design heuristics. We have previously worked on automating the verification of railway designs against such regulations, and integrated a verification tool based on Datalog reasoning into the CAD tools of railway engineers. This was used in a pilot project at Norconsult AS (formerly Anacon AS). In order to allow railway engineers with limited logic programming experience to participate in the verification process, in this work we introduce a controlled natural language, RailCNL, which is designed as a middle ground between informal regulations and Datalog code. Phrases in RailCNL correspond closely to those in the regulation texts, and can be translated automatically into the input language of the verifier. We demonstrate a prototype system which, upon detecting regulation violations, traces back from errors in the design through the CNL to the marked-up original text, allowing domain experts to examine the correctness of each translation step and better identify sources of errors. We also describe our design methodology, based on CNL best practices and previous experience with creating verification front-end languages.

[55] Thibaud Antignac, Mukelabai Mukelabai, and Gerardo Schneider. Specification, Design, and Verification of an Accountability-aware Surveillance Protocol. In The 32nd ACM/SIGAPP Symposium On Applied Computing -Software Verification and Testing track (SAC-SVT'17), pages 1372-1378. ACM, 2017. [ bib | DOI | http | .pdf ]
Though controversial, surveillance activities are more and more performed for security reasons. However, such activities are extremely privacy-intrusive. This is seen as a necessary side-effect to ensure the success of such operations. In this paper, we propose an accountability-aware protocol designed for surveillance purposes. It relies on a strong incentive for a surveillance organisation to register its activity to a data protection authority. We first elicit a list of accountability requirements, we provide an architecture showing the interaction of the different involved parties, and we propose an accountability-aware protocol which is formally specified in the applied pi calculus. We use the ProVerif tool to automatically verify that the protocol respects confidentiality, integrity and authentication properties.

[56] Pablo Picazo-Sánchez, Raúl Pardo, and Gerardo Schneider. Secure Photo Sharing in Social Networks. In IFIP Information Security & Privacy Conference (IFIP SEC'17), volume 502 of IFIP Advances in Information and Communication Technology (AICT), pages 79-92, Rome, Italy, 2017. Springer Science and Business Media. [ bib | DOI | .pdf ]
Nowadays, in an ubiquitous world where everything is connected to the Internet and where social networks play an important role in our lives, security and privacy is a must. Billions of pictures are uploaded daily to social networks and, with them, parts of our private life are disclosed. In this work, we propose a practical solution for secure photo sharing on social network with independence of its architecture which can be either centralised or distributed. This solution solves the inconsistencies that appear in distributed social network as a consequence of treating photos and access policies separately. Specifically, we solve this open problem by attaching an access policy to the images and thus, each time a photo is re-shared, the access policy will travel together with the image.

[57] Thibaud Antignac, David Sands, and Gerardo Schneider. Data Minimisation: A Language-Based Approach. In IFIP Information Security & Privacy Conference (IFIP SEC'17), volume 502 of IFIP Advances in Information and Communication Technology (AICT), pages 442-456, Rome, Italy, 2017. Springer Science and Business Media. [ bib | DOI | .pdf ]
Data minimisation is a privacy-enhancing principle considered as one of the pillars of personal data regulations. This principle dictates that personal data collected should be no more than necessary for the specific purpose consented by the user. In this paper we study data minimisation from a programming language perspective. We assume that a given program embodies the purpose of data collection, and define a data minimiser as a pre-processor for the input which reduces the amount of information available to the program without compromising its functionality. We give formal definitions, and provide a procedure to synthesise a correct data minimiser for a given program.

[58] Shaun Azzopardi, Gordon J. Pace, Fernando Schapachnik, and Gerardo Schneider. Contract Automata: An Operational View of Contracts Between Interactive Parties. Artificial Intelligence and Law, 24(3):203-243, September 2016. [ bib | DOI | .pdf ]
Deontic logic as a way of formally reasoning about norms, an important area in AI and law, has traditionally concerned itself about formalising provisions of general statutes. Despite the long history of deontic logic, given the wide scope of the logic, it is difficult, if not impossible, to formalise all these notions in a single formalism, and there are still ongoing debates on appropriate semantics for deontic modalities in different contexts. In this paper, we restrict our attention to contracts between interactive parties, which are both general enough to be an interesting object of study but specific enough so as to narrow down the debates regarding the meaning of modalities, and present a formalism for reasoning about them.

[59] John J. Camilleri, Normunds Gruzitis, and Gerardo Schneider. Extracting Formal Models from Normative Texts. Technical Report abs/1607.01485, CoRR - arXiv.org, 2016. [ bib | arXiv | http ]
[60] Thibaud Antignac, David Sands, and Gerardo Schneider. Data Minimisation: A Language-Based Approach (Long Version). Technical Report abs/1611.05642, CoRR - arXiv.org, 2016. [ bib | arXiv | http ]
[61] Raúl Pardo, Ivana Kellyérová, César Sánchez, and Gerardo Schneider. Specification of Evolving Privacy Policies for Online Social Networks. In 23rd International Symposium on Temporal Representation and Reasoning (TIME'16), pages 70-79. IEEE CPS, 2016. [ bib | DOI | .pdf ]
Online Social Networks are ubiquitous,bringing not only numerous new possibilities but also big threats and challenges. Privacy is one of them. Most social networks today offer a limited set of (static) privacy settings, not being able to express dynamic policies. For instance, users might decide to protect their location during the night, or share information with difference audiences depending on their current position. In this paper we introduce TFPPF, a formal framework to express, and reason about, dynamic (and recurrent) privacy policies that are activated or deactivated by context (events) or time. Besides a formal policy language (TPPL), the framework includes a knowledge-based logic extended with (linear) temporal operators and a learning modality (TKBL). Policies, and formulae in the logic, are interpreted over (timed) traces representing the evolution of the social network. We prove that checking privacy policy conformance, and the model-checking problem for TKBL, are both decidable.

[62] Raúl Pardo, Christian Colombo, Gordon Pace, and Gerardo Schneider. An Automata-based Approach to Evolving Privacy Policies for Social Networks. In The 16th International Conference on Runtime Verification (RV'16), volume 10012 of LNCS, pages 285-301. Springer, 2016. [ bib | DOI | .pdf ]
Online Social Networks (OSNs) are ubiquitous, with more than 70% of Internet users being active users of such networking services. This widespread use of OSNs brings with it big threats and challenges, privacy being one of them. Most OSNs today offer a limited set of (static) privacy settings and do not allow for the definition, even less enforcement, of more dynamic privacy policies. In this paper we are concerned with the specification and enforcement of dynamic (and recurrent) privacy policies that are activated or deactivated by context (events). In particular, we present a novel formalism of policy automata, transition systems where privacy policies may be defined per state. We further propose an approach based on runtime verification techniques to define and enforce such policies. We provide a proof-of-concept implementation for the distributed social network Diaspora, using the runtime verification tool LARVA to synthesise enforcement monitors.

[63] Wolfgang Ahrendt, Gordon Pace, and Gerardo Schneider. StaRVOOrS - Episode II, Strengthen and Distribute the Force. In 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - ISoLA'16 (1); Track: Static and Runtime Verification: Competitors or Friends?, volume 9952 of LNCS, pages 402-415. Springer, 10-14 October 2016. [ bib | DOI | .pdf ]
Static and runtime techniques for the verification of programs are complementary. They both have their advantages and disadvantages, and a natural question is whether they may be combined in such a way as to get the advantages of both without inheriting too much from their disadvantages. In a previous contribution to ISoLA'12, we have proposed StaRVOOrS (`Static and Runtime Verification of Object-Oriented Software'), a unified framework for combining static and runtime verification in order to check data- and control-oriented properties. Returning to ISoLA here, we briefly report on advances since then: a unified specification language for data- and control-oriented properties, a tool for combined static and runtime verification, and experiments. On that basis, we discuss two future research directions to strengthen the power, and broaden the scope, of combined static and runtime verification: (i) to use static analysis techniques to further optimise the runtime monitor, and (ii) to extend the framework to the distributed case.

[64] Thibaud Antignac, Riccardo Scandariato, and Gerardo Schneider. A Privacy-Aware Conceptual Model for Handling Personal Data. In 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - ISoLA'16 (1); Track: Privacy and Security Issues in Information Systems, volume 9952 of LNCS, pages 942-957. Springer, 10-14 October 2016. [ bib | DOI | .pdf ]
Handling personal data adequately is one of the biggest challenges of our era. Consequently, law and regulations are in the process of being released, like the European General Data Protection Regulation (GDPR), which attempt to deal with these challenging issue early on. The core question motivating this work is how software developers can validate their technical design vis-a-vis the prescriptions of the privacy legislation. In this paper, we outline the technical concepts related to privacy that need to be taken into consideration in a software design. Second, we extend a popular design notation in order to support the privacy concepts illustrated in the previous point. Third, we show how some of the prescriptions of the privacy legislation and standards may be related to a technical design that employs our enriched notation, which would facilitate reasoning about compliance.

[65] Gerardo Schneider. On the Specification and Enforcement of Privacy-Preserving Contractual Agreements. In 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - ISoLA'16 (2); Track: Runtime Verification and Enforcement, the (industrial) application perspective, volume 9953 of LNCS, pages 413-419. Springer, 2016. [ bib | DOI | .pdf ]
We are here concerned with the enforcement at runtime of contractual agreements (e.g., Terms of Service) that respect users' privacy policies. We do not provide a technical solution to the problem but rather give an overview of a framework for such an enforcement, and briefly discuss related work and ideas on how to address part of the framework.

[66] Gordon Pace, Raúl Pardo, and Gerardo Schneider. On the Runtime Enforcement of Evolving Privacy Policies in Online Social Networks. In 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation - ISoLA'16 (2); Track: Runtime Verification and Enforcement, the (industrial) application perspective, volume 9953 of LNCS, pages 407-412. Springer, 10-14 October 2016. [ bib | DOI | .pdf ]
Online Social Networks have increased the need to understand well and extend the expressiveness of privacy policies. In particular, the need to be able to define and enforce dynamic (and recurrent) policies that are activated or deactivated by context (events) or timeouts. We propose an automaton-based approach to define and enforce such policies using runtime verification techniques. In this paper we discuss how our proposed solution addresses this problem without focussing on concrete technical details.

[67] John J. Camilleri, Normunds Gruzitis, and Gerardo Schneider. Extracting Formal Models from Normative Texts. In 21st International Conference on Applications of Natural Language to Information Systems (NLDB'16), volume 9612 of LNCS, pages 403-408. Springer, 22-24 June 2016. [ bib | DOI ]
Normative texts are documents based on the deontic notions of obligation, permission, and prohibition. Our goal is model such texts using the formalism, making them amenable to formal analysis, in particular verifying that a text satisfies properties concerning causality of actions and timing constraints. We present an experimental, semi-automatic aid to bridge the gap between a normative text and its formal representation. Our approach uses dependency trees combined with our own rules and heuristics for extracting the relevant components. The resulting tabular data can then be converted into a C-O Diagram.

[68] Jesús Mauricio Chimento, Wolfgang Ahrendt, Gordon Pace, and Gerardo Schneider. STARVOORS: A Tool for Combined Static and Runtime Verification of Java. In The 15th International Conference on Runtime Verification (RV'15), volume 9333 of LNCS, pages 297-305, Vienna, Austria, September 22-25 2015. Springer. [ bib | DOI | .pdf ]
We present the tool StaRVOOrS (Static and Runtime Verification of Object-Oriented Software), which combines static and runtime verification (RV) of Java programs. The tool automates a framework which uses partial results extracted from static verification to optimise the runtime monitoring process. StaRVOOrs combines the deductive theorem prover KeY and the RV tool LARVA, and uses properties written using the ppDATE specification language which combines the control-flow property language DATE used in LARVA with Hoare triples assigned to states. We demonstrate the effectiveness of the tool by applying it to the electronic purse application Mondex.

[69] Wolfgang Ahrendt, Mauricio Chimento, Gordon Pace, and Gerardo Schneider. A specification language for static and runtime verification of data and control properties. In Formal Methods (FM'15), volume 9109 of LNCS, pages 108-125, Oslo, Norway, June 24-26 2015. Springer. [ bib | DOI | .pdf ]
Static verification techniques can verify properties across all executions of a program, but powerful judgements are hard to achieve automatically. In contrast, runtime verification enjoys full automation, but cannot judge future and alternative runs. In this paper we present a novel approach in which data-centric and control-oriented properties may be stated in a single formalism, amenable to both static and dynamic verification techniques. We develop and formalise a specification notation, ppDATE, extending the control-flow property language used in the runtime verification tool LARVA with pre/post-conditions and show how specifications written in this notation can be analysed both using the deductive theorem prover KeY and the runtime verification tool LARVA. Verification is performed in two steps: KeY first partially proves the data-oriented part of the specification, simplifying the specification which is then passed on to LARVA to check at runtime for the remaining parts of the specification including the control-centric aspects. We apply the approach to Mondex, an electronic purse application.

[70] Gilles Barthe, Alberto Pardo, and Gerardo Schneider, editors. Software Engineering and Formal Methods, volume 14 of Journal of Software and System Modeling (SoSyM). Springer, February 2015. [ bib | DOI ]
[71] Gordon J. Pace, Fernando Schapachnik, and Gerardo Schneider. Conditional Permissions in Contracts. In The 28th International Conference on Legal Knowledge and Information Systems (JURIX'15), volume 279 of Frontiers in Artificial Intelligence and Applications, pages 61-70. IOS Press, 2015. [ bib | DOI | .pdf ]
Defining and characterising conditional permissions has never been easy. Part of the problem, we believe, comes from the fact that there is not one but a whole family of possible deontic operators, all of them distinct and reasonable, that can be labelled as conditional permissions. In this article, rather than disputing the correct interpretation, we revisit a number of different interpretations the term has received in the literature, and propose appropriate formalisations for these interpretations within the context of contract automata.

[72] Hamid Ebadi, David Sands, and Gerardo Schneider. Differential Privacy: Now it's Getting Personal. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'15), pages 69-81, Mumbai, India, 12-18 January 2015. ACM. [ bib | DOI | .pdf ]
Differential privacy provides a way to get useful information about sensitive data without revealing much about any one individual. It enjoys many nice compositionality properties not shared by other approaches to privacy, including, in particular, robustness against side-knowledge. Designing differentially private mechanisms from scratch can be a challenging task. One way to make it easier to construct new differential private mechanisms is to design a system which allows more complex mechanisms (programs) to be built from differentially private building blocks in principled way, so that the resulting programs are guaranteed to be differentially private by construction. This paper is about a new accounting principle for building differentially private programs. It is based on a simple generalisation of classic differential privacy which we call Personalised Differential Privacy (PDP). In PDP each individual has its own personal privacy level. We describe ProPer, a interactive system for implementing PDP which maintains a privacy budget for each individual. When a primitive query is made on data derived from individuals, the provenance of the involved records determines how the privacy budget of an individual is affected: the number of records derived from Alice determines the multiplier for the privacy decrease in Alice's budget. This offers some advantages over previous systems, in particular its fine-grained character allows better utilisation of the privacy budget than mechanisms based purely on the concept of global sensitivity, and it applies naturally to the case of a live database where new individuals are added over time. We provide a formal model of the ProPer approach, prove that it provides personalised differential privacy, and describe a prototype implementation based on McSherry's PINQ system.

[73] John J. Camilleri, Gabriele Paganelli, and Gerardo Schneider. A CNL for Contract-Oriented Diagrams. Technical Report abs/1406.5691, CoRR - arXiv.org, 2014. [ bib | arXiv | http ]
[74] John J. Camilleri, Gabrielle Paganelli, and Gerardo Schneider. A cnl for contract-oriented diagrams. In Fourth Workshop on Controlled Natural Language (CNL 2014), volume 8625 of LNCS, pages 135-146. Springer, 2014. [ bib | DOI | .pdf ]
We present a first step towards a framework for defining and manipulating normative documents or contracts described as Contract-Oriented (C-O) Diagrams.These diagrams provide a visual representation for such texts, giving the possibility to express a signatory's obligations, permissions and prohibitions, with or without timing constraints, as well as the penalties resulting from the non-fulfilment of a contract. This work presents a CNL for verbalising C-O Diagrams, a web-based tool allowing editing in this CNL, and another for visualising and manipulating the diagrams interactively. We then show how these proof-of-concept tools can be used by applying them to a small example.

[75] Raúl Pardo and Gerardo Schneider. A formal privacy policy framework for social networks. In 12th International Conference on Software Engineering and Formal Methods (SEFM'14), volume 8702 of LNCS, pages 378-392. Springer, 2014. [ bib | DOI | .pdf ]
Social networks (SN) provide a great opportunity to help people interact with each other in different ways depending on the kind of relationship that links them. One of the aims of SN is to be flexible in the way one shares information, being as permissive as possible in how people communicate and disseminate information. While preserving the spirit of SN, users would like to be sure that their privacy is not compromised. One way to do so is by providing users with means to define their own privacy policies and give guarantees that they will be respected. In this paper we present a privacy policy framework for SN, consisting of a formal model of SN, a knowledge-based logic, and a formal privacy policy language. The framework may be tailored by providing suitable instantiations of the different relationships, the events, the propositions representing what is to be known, and the additional facts or rules a particular social network should satisfy. Besides, models of Facebook and Twitter are instantiated in our formalism, and we provide instantiations of a number of richer privacy policies.

[76] Gregorio Díaz, M. Emilia Cambronero, Enrique Martínez, and Gerardo Schneider. Specification and Verification of Normative texts using C-O Diagrams. IEEE Transactions on Software Engineering, 40(8):795-817, 2014. [ bib | DOI | .pdf ]
C-O Diagrams have been introduced as a means to have a more visual representation of normative texts and electronic contracts, where it is possible to represent the obligations, permissions and prohibitions of the different signatories, as well as the penalties resulting from non-fulfillment of their obligations and prohibitions. In such diagrams we are also able to represent absolute and relative timing constraints. In this paper we present a formal semantics for C-O Diagrams based on timed automata extended with information regarding the satisfaction and violation of clauses in order to represent different deontic modalities. As a proof of concept, we apply our approach to two different case studies, where the method presented here has successfully identified problems in the specification.

[77] Antonio Cerone, Markus Roggenbach, Holger Schlingloff, Gerardo Schneider, and Siraj Shaikh. Teaching formal methods for software engineering - ten principles. In Fun with Formal Methods Workshop, July 2013. [ bib | .pdf ]
In this paper we report and reflect about the didactic principles underlying our endeavour to write a book on `Formal Methods for Software Engineering - Languages, Methods, Application Domains”, and to teach its contents at international summer schools`. Target audience for the book are taught master students, possibly striving for a career in industry, and doctoral students in their early years, possibly in search of a suitable topic for their dissertation. We outline ten principles underlying the design of the book, coin a recommendation from each principle, and give appropriate examples. We report about the feedback from participants to the schools and lectures, and relate our principles to other pedagogical suggestions for teaching Formal Methods.

[78] Krasimir Angelov, John J. Camilleri, and Gerardo Schneider. A framework for conflict analysis of normative texts written in controlled natural language. Journal of Logic and Algebraic Programming, 82(5-7):216-240, July-October 2013. [ bib | DOI | .pdf ]
In this paper we are concerned with the analysis of normative conflicts, or the detection of conflicting obligations, permissions and prohibitions in normative texts written in a Controlled Natural Language (CNL). For this we present , a proof-of-concept system where normative texts written in CNL are automatically translated into the formal language CL using the Grammatical Framework (GF). Such CL expressions are then analysed for normative conflicts by the CLAN tool, which gives counter-examples in cases where conflicts are found. The framework also uses GF to give a CNL version of the counter-example, helping the user to identify the conflicts in the original text. We detail the application of AnaCon to two case studies and discuss the effectiveness of our approach.

[79] Pavel Rabetski and Gerardo Schneider. Migration of an on-premise application to the cloud: Experience report. In European Conference on Service-Oriented and Cloud Computing (ESOCC'13), volume 8135 of LNCS, pages 227-241, Malaga, Spain, 2013. Springer. [ bib | DOI | .pdf ]
As of today it is still not clear how and when cloud computing should be used. Developers very often write applications in a way that does not really fit a cloud environment, and in some cases without taking into account how quality attributes (like performance, security or portability) are affected. In this paper we share our experience and observations from adopting cloud computing for an on-premise enterprise application in a context of a small software company. We present experimental results concerning a comparative evaluation (w.r.t. performance and cost) of the behavior of the original system both on-premise and on the Cloud, considering different scenarios in the Cloud.

[80] Robert Nagy, Gerardo Schneider, and Aram Timofeitchik. Automatic testing of real-time graphics systems. In 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'13), volume 7795 of LNCS, pages 465-479, Rome, Italy, 2013. Springer. [ bib | DOI | .pdf ]
In this paper we deal with the general topic of verification of real-time graphic systems. In particular we present the Runtime Graphics Verification Framework (RUGVEF), where we combine techniques from runtime verification and image analysis to automate testing of graphic systems. We provide a proof of concept in the form of a case study, where RUGVEF is evaluated in an industrial setting to verify an on-air graphics playout system used by the Swedish Broadcasting Corporation. We report on experimental results from the evaluation, in particular the discovery of five previously unknown defects not been detected before.

[81] Hallstein Hansen, Gerardo Schneider, and Martin Steffen. Reachability analysis of complex planar hybrid systems. Science of Computer Programming (SCP), 78(12):2511-2536, 2013. [ bib | DOI | .pdf ]
Hybrid systems are systems that exhibit both discrete and continuous behavior. Reachability, the question of whether a system in one state can reach some other state, is undecidable for hybrid systems in general. The Generalized Polygonal Hybrid System (GSPDI) is a restricted form of hybrid automaton where reachability is decidable. It is limited to two continuous variables that uniquely determine which location the automaton is in, and restricted in that the discrete transitions does not allow changes in the state, only the location, of the automaton. One application of GSPDIs is for approximating control systems and verifying the safety of such systems. In this paper we present the following two contributions: i) An optimized algorithm that answers reachability questions for GSPDIs, where all cycles in the reachability graph are accelerated. ii) An algorithm by which more complex planar hybrid systems are over-approximated by GSPDIs subject to two measures of precision. We prove soundness, completeness, and termination of both algorithms, and discuss their implementation.

[82] Gerardo Schneider. Towards a framework for analyzing normative texts in controlled natural language. In 6th International Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS'12), EPTCS, Bertinoro, Italy, 19 September 2012. [ bib ]
[83] Cristian Prisacariu and Gerardo Schneider. A dynamic deontic logic for complex contracts. Journal of Logic and Algebraic Programming, 81(4):458-490, May 2012. [ bib | DOI | .pdf ]
We present a dynamic deontic logic for specifying and reasoning about complex contracts. The concepts that our contract logic CL captures are drawn from legal contracts, as we consider that these are more general and expressive that what is usually found in computer science (like in software contracts, web services specifications, or communication protocols). CL is intended to be used in specifying complex contracts found in computer science. This influences many of the design decisions behind CL. We adopt an ought-to-do approach to deontic logic and apply the deontic modalities exclusively over complex actions. We add the dynamic logic modality so to be able to reason about what happens after an action is performed. CL can reason about regular synchronous actions done at the same time. CL incorporates the notions of contrary-to-duty and contrary-to-prohibition by attaching to the deontic modalities explicitly a reparation which is to be enforced in case of violations. Results of decidability and tree model property are given as well as specific properties for the modalities.

[84] Antonio Brogi and Gerardo Schneider, editors. Special Section: Formal Languages and Analysis of Contract-Oriented Software (FLACOS'10), volume 81(2) of Journal of Logic and Algebraic Programming. Elsevier, February 2012. [ bib | DOI ]
[85] Wolfgang Ahrendt, Gordon J. Pace, and Gerardo Schneider. A Unified Approach for Static and Runtime Verification: Framework and Applications. In 5th International Symposium On Leveraging Applications of Formal Methods, Verification and Validation (ISoLA'12) - Part I, volume 7609 of LNCS, pages 312-326, Heraclion, Crete, 15-18 October 2012. Springer. [ bib | DOI | .pdf ]
Static verification of software is becoming ever more effective and efficient. Still, static techniques either have high precision, in which case powerful judgements are hard to achieve automatically, or they use abstractions supporting increased automation, but possibly losing important aspects of the concrete system in the process. Runtime verification has complementary strengths and weaknesses. It combines full precision of the model (including the real deployment environment) with full automation, but cannot judge future and alternative runs. Another drawback of runtime verification can be the computational overhead of monitoring the running system which, although typically not very high, can still be prohibitive in certain settings. In this paper we propose a framework to combine static analysis techniques and runtime verification with the aim of getting the best of both techniques. In particular, we discuss an instantiation of our framework for the deductive theorem prover KeY, and the runtime verification tool LARVA. Apart from combining static and dynamic verification, this approach also combines the data centric analysis of KeY with the control-centric analysis of LARVA. An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, expensive parts of the analysis could be moved to the static phase, allowing the runtime monitor to make significant assumptions, dropping parts of expensive checks at runtime. We also discuss specific applications of our approach.

[86] Hallstein A. Hansen, Gerardo Schneider, and Martin Steffen. Reachability analysis of non-linear planar autonomous systems. In Fourth International Conference on Fundamentals of Software Engineering (FSEN'11), volume 7141 of LNCS, pages 206-220, Teheran, Iran, 20-22 April 2012. Springer. [ bib | DOI | .pdf ]
Many complex continuous systems are modeled as non-linear autonomous systems, i.e., by a set of differential equations with one independent variable. Exact reachability, i.e., whether a given configuration can be reached by starting from an initial configuration of the system, is undecidable in general, as one needs to know the solution of the system of equations under consideration. In this paper we address the reachability problem of planar autonomous systems approximatively. We use an approximation technique which "hybridizes" the state space in the following way: the original system is partitioned into a finite set of polygonal regions where the dynamics on each region is approximated by constant differential inclusions. Besides proving soundness, completeness, and termination of our algorithm, we present an implementation, and its application into (classical) examples taken from the literature.

[87] Eugene Asarin, Venkatesh Mysore, Amir Pnueli, and Gerardo Schneider. Low dimensional hybrid systems - decidable, undecidable, don't know. Information and Computation, 211:138-159, January 2012. [ bib | DOI | .pdf ]
Even though many attempts have been made to define the boundary between decidable and undecidable hybrid systems, the affair is far from being solved. More and more low dimensional systems are being shown to be undecidable with respect to reachability, and many open problems in between are being discovered. In this paper, we present various two dimensional hybrid systems for which the reachability problem is undecidable. We show their undecidability by simulating Minsky machines. Their proximity to the decidability frontier is understood by inspecting the most parsimonious constraints necessary to make reachability over these automata decidable. We also show that for other two dimensional systems, the reachability question remains unanswered, by proving that it is as hard as the reachability problem for piecewise affine maps on the real line, which is a well known open problem.

[88] Hallstein Hansen, Gerardo Schneider, and Martin Steffen. Reachability analysis of complex planar hybrid systems. Technical Report 412, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, November 2011. [ bib | http | .pdf ]
Hybrid systems are systems that exhibit both discrete and continuous behavior. Reachability, the question of whether a system in one state can reach some other state, is undecidable for hybrid systems in general. The Generalized Polygonal Hybrid System (GSPDI) is a restricted form of hybrid automaton where reachability is decidable. It is limited to two continuous variables that uniquely determine which location the automaton is in, and restricted in that the discrete transitions does not allow changes in the state, only the location, of the automaton. One application of GSPDIs is for approximating control systems and verifying the safety of such systems. In this paper we present the following two contributions: i) An optimized algorithm that answers reachability questions for GSPDIs, where all cycles in the reachability graph are accelerated. ii) An algorithm by which more complex planar hybrid systems are over-approximated by GSPDIs subject to two measures of precision. We prove soundness, completeness, and termination of both algorithms, and discuss their implementation.

[89] Gilles Barthe, Alberto Pardo, and Gerardo Schneider, editors. Software Engineering and Formal Methods, volume 7041 of Lecture Notes in Computer Science. Springer, November 2011. [ bib | DOI ]
[90] Gordon Pace and Gerardo Schneider, editors. Special Issue: Formal Languages and Analysis of Contract-Oriented Software, volume 80(3-5) of Journal of Logic and Algebraic Programming. Elsevier, April-July 2011. [ bib | DOI ]
[91] Seyed M. Montazeri, Nivir Roy, and Gerardo Schneider. From Contracts in Structured English to CL Specifications. In 5th International Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS'11), volume 68 of EPTCS, pages 55-69, Málaga, Spain, 22-23 September 2011. [ bib | DOI | .pdf ]
In this paper we present a framework to analyze conflicts of contracts written in structured English. A contract that has manually been rewritten in a structured English is automatically translated into a formal language using the Grammatical Framework (GF). In particular we use the contract language CL as a target formal language for this translation. In our framework CL specifications could then be input into the tool CLAN to detect the presence of conflicts (whether there are contradictory obligations, permissions, and prohibitions. We also use GF to get a version in (restricted) English of CL formulae. We discuss the implementation of such a framework.

[92] Enrique Martínez, María E. Cambronero, Gregorio Díaz, and Gerardo Schneider. Timed Automata Semantics for Visual e-Contracts. In 5th International Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS'11), volume 68 of EPTCS, pages 7-21, Málaga, Spain, 22-23 September 2011. [ bib | DOI | .pdf ]
C-O Diagrams have been introduced as a means to have a more visual representation of electronic contracts, where it is possible to represent the obligations, permissions and prohibitions of the different signatories, as well as what are the penalties in case of not fulfillment of their obligations and prohibitions. In such diagrams we are also able to represent absolute and relative timing constraints. In this paper we present a formal semantics for C-O Diagrams based on timed automata extended with an ordering of states and edges in order to represent different deontic modalities.

[93] Ingram Bondin, Christian Colombo, Andrew Gauci, Gordon J. Pace, and Gerardo Schneider. Monitoring real-time properties with overhead guarantees, 2011. Submitted to IEEE Transactions on Software Engineering. Submitted Sep 2010; Revised Apr 2011. [ bib ]
Although the use of runtime verification has recently increased as a lightweight formal verification approach, major challenges still exist in applying such technique to real-time systems due to the overhead induced on the system by monitoring. In this paper, we focus on runtime monitoring of real-time properties and analysis to enable guarantees about the overheads induced through monitoring. In particular, we provide two types of guarantees: given a system property, we present an analysis to decide whether the property satisfaction or violation is affected by system slowdown or speedup, and for more stringent conditions, we enable guaranteeing an upper-bound on overhead incurred in monitoring a particular property. The framework is embodied in the tool LARVA, which we have extended to reason about statistical properties, and which has been applied to a number of industrial systems.

[94] Gordon Pace and Gerardo Schneider, editors. Special Issue: Formal Languages and Analysis of Contract-Oriented Software (FLACOS'08), volume 80(1) of Journal of Logic and Algebraic Programming. Elsevier, January 2011. [ bib | DOI ]
[95] Enrique Martinez and Gerardo Schneider. Automated Analysis of Conflicts in Software Product Lines. In SPLC Workshops - 1st International Workshop on Formal Methods in Software Product Line Engineering (FMSPLE'10), volume 2, pages 75-82. Lancaster University, September 2010. [ bib | .pdf ]
In this paper we propose a framework where the behaviour of features can be modelled using a visual model language for contracts (C-O Diagrams). We present a partial translation from C-O Diagrams into the deontic contract language CL allowing to detect whether there are contradicting features, using the tool CLAN. We aim at handling conflicts arising from software evolution and variability. As a proof of concept we apply our technique to a trading system case study.

[96] Enrique Martinez, Emilia Cambronero, Gregorio Diaz, and Gerardo Schneider. A Model for Visual Specification of e-Contracts. In The 7th IEEE International Conference on Services Computing (IEEE SCC'10), pages 1-8, Los Alamitos, USA, July 5-10 2010. IEEE Computer Society. [ bib | DOI | .pdf ]
In a web service composition, an electronic contract (e-contract) regulates how the services participating in the composition should behave, including the restrictions that these services must fulfill, such as real-time constraints. In this work we present a visual model that allows us to specify e-contracts in a user friendly way, including conditional behavior and realtime constraints. A case study is presented to illustrate how this visual model defines e-contracts and a preliminary evaluation of the model is also done.

[97] Hallstein A. Hansen and Gerardo Schneider. Reachability Analysis of GSPDIs: Theory, Optimization, and Implementation. In 25th Annual ACM Symposium on Applied Computing -Software Verification and Testing track (SAC-SVT'10), pages 2511-2516, Sierre, Switzerland, March 22-26 2010. ACM. [ bib | DOI | .pdf ]
Analysis of systems containing both discrete and continuous dynamics, hybrid systems, is a difficult issue. Most problems have been shown to be undecidable, with the exception of a few classes where the dynamics are restricted and/or the dimension is low. In this paper we present some theoretical results concerning the decidability of the reachability problem for a class of planar hybrid systems called Generalized Polygonal Hybrid Systems (GSPDI). These new results provide means to optimize a previous reachability algorithm, making the implementation feasible. We also discuss the implementation of the algorithm into a tool.

[98] Christian Colombo, Gordon Pace, and Gerardo Schneider. Resource-bounded runtime verification of java programs with real-time properties. Technical Report CS2009-01, Department of Computer Science, University of Malta, December 2009. [ bib | .pdf ]
Given the intractability of exhaustively verifying software, the use of runtime verification, to verify single execution paths at runtime, is becoming increasingly popular. Undoubtedly, the overhead introduced by runtime verification is a concern for system developers planning to introduce this technique in their work. By using Lustre to write security-critical properties, we exploit the language's guarantees on bounded resources. We translate these properties into the existing monitoring framework LARVA, making monitoring of programs both easily applicable to Java programs and at the same time guaranteed to use bounded-resources. We use a subset of Quantified Discrete-time Duration Calculus (QDDC) as an alternative specification notation for real-time properties because it is translatable into Lustre. Thus, QDDC also enjoys the same guarantees given when using Lustre.

[99] Hallstein A. Hansen and Gerardo Schneider. On the reachability analysis of planar, non-linear autonomous systems using hybrid systems. NWPT'09, Lyngby, Denmark, October 2009. Extended Abstract. [ bib | .pdf ]
[100] Stephen Fenech, Gordon J. Pace, and Gerardo Schneider. Clan: A tool for contract analysis and conflict discovery. In 7th International Symposium on Automated Technology for Verification and Analysis (ATVA'09), volume 5799 of LNCS, pages 90-96, Macao, China, October 2009. Springer. [ bib | DOI | .pdf ]
As Service-Oriented Architectures are more widely adopted, it becomes more important to adopt measures for ensuring that the services satisfy functional and non-functional requirements. One approach is the use of contracts based on deontic logics, expressing obligations, permissions and prohibitions of the different actors. The use of explicit contracts enables various analysis techniques to be used when using services. A challenging aspect is that of service composition, in which the contracts composed together may result in conflicting situations. Especially in a context where services may be dynamically composed, the need for automated techniques to analyse contracts and ensure their soundness are crucial. In this paper, we present CLAN, a tool for automatic analysis of conflicting clauses of contracts written in the contract language CL. We present a small case study of an airline check-in desk illustrating the use of the tool.

[101] Gordon J. Pace and Gerardo Schneider. FLACOS'09 Workshop Proceedings. Technical Report 385, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, September 2009. Editors. [ bib | .pdf ]
[102] Christian Colombo, Gordon J. Pace, and Gerardo Schneider. Dynamic event-based runtime monitoring of real-time and contextual properties. In 13th International Workshop on Formal Methods for Industrial Critical Systems (FMICS'08), volume 5596 of LNCS, pages 135-149, L'Aquila, Italy, September 2009. Springer-Verlag. [ bib | DOI | .pdf ]
Given the intractability of exhaustively verifying software, the use of runtime-verification, to verify single execution paths at runtime, is becoming popular. Although the use of runtime verification is increasing in industrial settings, various challenges still are to be faced to enable it to spread further. We present dynamic communicating automata with timers and events to describe properties of systems, implemented in LARVA, an event-based runtime verification tool for monitoring temporal and contextual properties of Java programs. The combination of timers with dynamic automata enables the straightforward expression of various properties, including replication of properties, as illustrated in the use of LARVA for the runtime monitoring of a real life case study - an online transaction system for credit card. The features of LARVA are also benchmarked and compared to a number of other runtime verification tools, to assess their respective strengths in property expressivity and overheads induced through monitoring.

[103] Stephen Fenech, Gordon J. Pace, and Gerardo Schneider. Automatic Conflict Detection on Contracts. In 6th International Colloquium on Theoretical Aspects of Computing (ICTAC'09), volume 5684 of LNCS, pages 200-214, Kuala Lumpur, Malaysia, August 2009. Springer. [ bib | DOI | .pdf ]
Industry is currently pushing towards Service-Oriented Architectures, where code execution is not limited to the organisational borders but may be extended beyond, to sources typically not accessible. Contracts, expressing obligations, permissions and prohibitions of the different actors, can be used to protect the interests of the organisations engaged in such service exchange. The, potentially dynamic, composition of different services with different contracts, and the combination of service contracts with local contracts can give rise to unexpected conflicts, exposing the need for automatic techniques for contract analysis. In this paper we look at automatic analysis techniques for contracts written in the contract language CL. We present a trace semantics of CL suitable for conflict analysis, and a decision procedure for detecting conflicts (together with its proof of soundness, completeness and termination). We also discuss its implementation and look into the applications of the contract analysis approach we present. These techniques are applied to a small case study of an airline check-in desk.

[104] Hallstein A. Hansen and Gerardo Schneider. GSPeeDI - A Verification Tool for Generalized Polygonal Hybrid Systems. In 6th International Colloquium on Theoretical Aspects of Computing (ICTAC'09), volume 5684 of LNCS, pages 336-342, Kuala Lumpur, Malaysia, August 2009. Springer. [ bib | DOI | .pdf ]
The GSPeeDI tool implements a decision procedure for the reachability analysis of GSPDIs, planar hybrid systems whose dynamics is given by differential inclusions, and that are not restricted by the goodness assumption from previous work on the so-called SPDIs. Unlike SPeeDI (a tool for reachability analysis of SPDI) the underlying analysis of GSPeeDI is based on a breadth-first search algorithm, and it can handle more general systems.

[105] Einar B. Johnsen, Olaf Owe, and Gerardo Schneider, editors. Special Issue: The 19th Nordic Workshop on Programming Theory (NWPT 2007), volume 78(7) of Journal of Logic and Algebraic Programming. Elsevier, August/September 2009. [ bib | DOI ]
[106] Cristian Prisacariu and Gerardo Schneider. Abstract specification of legal contracts (research abstract). In 12th International Conference on Artificial Intelligence and Law (ICAIL'09), pages 218-219, Barcelona, Spain, June 2009. ACM. [ bib | DOI | .pdf ]
The paper presents an action-based formal language called CL for abstract specification of legal contracts. The purpose of the language is to be used to reason about electronic contracts, and as an abstract language for legal contracts. CL combines the legal notions of obligation, permission, and prohibition from deontic logic with the action modality of propositional dynamic logic. The deontic modalities are applied only over actions, thus following the ought-to-do approach. The language includes a synchrony operator to model actions performed at the same time, and a special complementation operation to encode the violation of obligations. The language has a formal semantics in terms of normative structures, specially defined to capture several natural properties of legal contracts. We focus on the informal discussion of the choices made for designing CL, both syntactically and semantically.

[107] Cristian Prisacariu and Gerardo Schneider. CL: An Action-based Logic for Reasoning about Contracts. In 16th Workshop on Logic, Language, Information and Computation (WOLLIC'09), volume 5514 of LNCS, pages 335-349, Tokyo, Japan, June 2009. Springer. [ bib | DOI | .pdf ]
This paper presents a new version of the CL contract specification language. CL combines deontic logic with propositional dynamic logic but it applies the modalities exclusively over structured actions. CL features synchronous actions, conflict relation, and an action negation operation. The CL version that we present here is more expressive and has a cleaner semantics than its predecessor. We give a direct semantics for CL in terms of normative structures. We show that CL respects several desired properties from legal contracts and is decidable. We relate this semantics with a trace semantics of CL which we used for run-time monitoring contracts.

[108] Olaf Owe and Gerardo Schneider, editors. Special Issue: Formal Languages and Analysis of Contract-Oriented Software (FLACOS'07), volume 78(5) of Journal of Logic and Algebraic Programming. Elsevier, May/June 2009. [ bib | DOI ]
[109] Stephen Fenech, Joseph Okika, Gordon J. Pace, Anders P. Ravn, and Gerardo Schneider. On the specification of full contracts. In 6th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA'09), volume 253 of ENTCS, pages 39-55, York, UK, March 2009. [ bib | DOI | .pdf ]
Contracts are specifications of properties of an interface to a software component; in this paper we focus on behavioural properties. We consider the problem of giving a full contract that specifies not only the normal behaviour, but also special cases and tolerated exceptions. We conjecture that operational specifications are well suited for normal cases, but are less easily extended for exceptional cases. Logic based specifications are essentially compositional, helping in some cases the specification of exceptional cases. This hypothesis is investigated by comparing specifications in CSP (operational) with specifications in LTL, CTL and a deontic logic based language CL. The specifications give successive extensions to a contract for a Cash Desk example. The outcome of the experiment supports the conjecture and demonstrates clear differences in the basic descriptive power of the formalisms.

[110] Olaf Owe and Gerardo Schneider. Wrap your objects safely. In 6th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA'09), volume 253 of ENTCS, pages 127-143, York, UK, March 2009. [ bib | DOI | .pdf ]
Despite the effort of researchers on distributed systems, programming languages, and security, there is still no good solution offering basic constructs for guaranteeing minimal security at the programming language level. In particular, the notion of a wrapper around an object controlling its interaction with the environment has not properly been addressed at the programming language level. This kind of “local firewall” may play two different roles: (1) The untrusted part is the object inside the wrapper; (2) The untrusted part is the environment. In this paper we propose the addition of a language primitive for creating wrapped objects, and sketch a formalization based on a minimal object-oriented language for distributed systems, based on asynchronous communication.

[111] Gordon J. Pace and Gerardo Schneider. Challenges in the specification of full contracts. In Integrated Formal Methods (iFM'09), volume 5423 of LNCS, pages 292-306, Düseldorf, Germany, February 2009. [ bib | DOI | .pdf ]
The complete specification of full contracts -contracts which include tolerated exceptions, and which enable reasoning about the contracts themselves, can be achieved using a combination of temporal and deontic concepts. In this paper we discuss the challenges in combining deontic and other relevant logics, in particular focusing on operators for choice, obligations over sequences, contrary-to-duty obligations, and how internal and external decisions may be incorporated in an action-based language for specifying contracts. We provide different viable interpretations and approaches for the development of such a sound logic and outline challenges for the future.

[112] Gilles Barthe, Gordon J. Pace, and Gerardo Schneider. Contract embedded languages for services, 2009. In preparation. [ bib ]
[113] Christian Colombo, Gordon J. Pace, and Gerardo Schneider. Safe runtime verification of real-time properties. In The 7th International Conference on Formal Modelling and Analysis of Timed Systems (FORMATS'09), volume 5813 of LNCS, pages 103-117, Budapest, Hungary, 2009. Springer. 13-16 September. [ bib | DOI | .pdf ]
Introducing a monitor on a system typically changes the system's behaviour, whether it is slowing the system down, and increasing memory consumption. This may possibly result in creating bugs not in the original system, or possibly even "fixing" bugs, only to reappear as the monitor is removed. Properties written in a real-time logic, such as duration calculus, can be particularly sensitive to such changes induced through monitoring. In this paper, we identify a class of real-time properties, in duration calculus, which are monotonic under the slowing down (speeding up) of the underlying system. We apply this approach to the real-time runtime monitoring tool LARVA, where we use duration calculus as a monitoring property specification language, so we automatically identify properties which can be shown to be monotonic with respect to system re-timing.

[114] Christian Colombo, Gordon J. Pace, and Gerardo Schneider. LARVA - Safer Monitoring of Real-Time Java Programs (Tool Paper). In 7th IEEE International Conference on Software Engineering and Formal Methods (SEFM'09), pages 33-37, Hanoi, Vietnam, 23-27 November 2009. IEEE Computer Society. [ bib | DOI | .pdf ]
The use of runtime verification, as a lightweight approach to guarantee properties of systems, has been increasingly employed on real-life software. In this paper, we present a tool LARVA, for the runtime verification of real-time properties of Java programs. Properties can be expressed in a number of notations, including timed-automata enriched with stopwatches, Lustre, and a subset of duration calculus. The tool has been successfully used on a number of case-studies, including an industrial system handling financial transactions. LARVA also performs analysis of real-time properties, to calculate, if possible, an upper-bound on the memory and temporal overheads induced by monitoring. Moreover, it gives other useful information, as for instance what is the impact of monitoring the system with respect to the monitored properties.

[115] Stephen Fenech, Gordon J. Pace, and Gerardo Schneider. Conflict Analysis of Deontic Contracts. NWPT'08, Tallinn, Estonia, November 19-21 2008. Extended Abstract. [ bib | .pdf ]
[116] Marcel Kyas, Cristian Prisacariu, and Gerardo Schneider. Run-time monitoring of electronic contracts. In 6th International Symposium on Automated Technology for Verification and Analysis (ATVA'08), volume 5311 of LNCS, pages 397-407, Seoul, South Korea, October 2008. Springer-Verlag. [ bib | DOI | .pdf ]
Electronic inter-organizational relationships are governed by contracts regulating their interaction. It is necessary to run-time monitor the contracts, as to guarantee their fulfillment as well as the enforcement of penalties in case of violations. The present work shows how to obtain a run-time monitor for contracts written in CL, a specification language that allows writing conditional obligations, permissions and prohibitions. We first give a trace semantics for CL which formalises that a trace fulfills a contract. We show how to obtain, for a given contract, a linear-size alternating Büchi automaton accepting exactly the traces which fulfill the contract. This automaton is the basis for obtaining a finite state machine which acts as a run-time monitor for CL contracts.

[117] Gordon J. Pace and Gerardo Schneider. FLACOS'08 Workshop Proceedings. Technical Report 377, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, October 2008. Editors. [ bib | .pdf ]
[118] Gordon J. Pace and Gerardo Schneider. Relaxing goodness is still good. In 5th International Colloquium on Theoretical Aspects of Computing (ICTAC'08), volume 5160 of LNCS, pages 274-289, Istanbul, Turkey, September 2008. [ bib | DOI | .pdf ]
Polygonal hybrid systems (SPDIs) are planar hybrid systems, whose dynamics are defined in terms of constant differential inclusions, one for each of a number of polygonal regions partitioning the plane. The reachability problem for SPDIs is known to be decidable, but depends on the goodness assumption - which states that the dynamics do not allow a trajectory to both enter and leave a region through the same edge. In this paper we extend the decidability result to generalised SPDIs (GSPDI), SPDIs not satisfying the goodness property, and give an algorithmic solution to decide reachability of such systems.

[119] Gordon Pace and Gerardo Schneider. Computation and visualisation of phase portraits for model checking spdis. In 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'08), volume 4963 of LNCS, pages 341-345, Budapest, Hungary, March 2008. Springer-Verlag. [ bib | DOI | .pdf ]
Hybrid systems combining discrete and continuous dynamics arise as mathematical models of various artificial and natural systems, and as an approximation to complex continuous systems. We present the tool SPeeDI+, that extends SPeeDI (a tool that implements a reachability algorithm for polygonal hybrid systems) with the computation of viability, controllability and invariance kernels.

[120] Gerardo Schneider. Reachability analysis of Generalized Polygonal Hybrid Systems. In 23rd Annual ACM Symposium on Applied Computing -Software Verification track (SAC-SV'08), pages 327-332, Fortaleza, Brazil, March 2008. ACM. [ bib | DOI | .pdf ]
A polygonal hybrid system (SPDIs) is a planar hybrid system, whose dynamics is defined by constant differential inclusions, for which the reachability problem is decidable. The decidability result is based, among other things, on the fact that a trajectory cannot enter and leave a given region through the same edge (the so-called goodness assumption). SPDIs without such an assumption are called Generalized SPDIs (GSPDIs). In this paper we show that it is not possible to reduce GSPDI reachability to SPDI reachability. Furthermore, we show that the reachability algorithm for SPDIs can be used to semi-decide GSPDI reachability, for which we give a sound algorithm.

[121] Cristian Prisacariu and Gerardo Schneider. CL: A Logic for Reasoning about Legal Contracts -Semantics. Technical Report 371, Oslo, Norway, February 2008. [ bib | .pdf ]
The work reported here is concerned with the definition of a logic (which we call CL) for reasoning about legal contracts. The report presents the syntax of the logic and the associated semantics. There are two semantics presented: one is defined with respect to linear structures (i.e. traces of actions) and is intended for run-time monitoring of executions of contracts; the second semantics is given over branching structures (i.e. Kripke-like structures) and is intended for reasoning about contracts in a static manner (i.e. model-checking and theorem proving). In the first part of the report we present the theoretical results underlying the branching semantics. It presents an algebra of actions and restates some of previous results presented in another report, as well as new results useful for the definition of the branching semantics and for the proofs. The rest of the report is concerned with the definition of the two semantics. Moreover, several (non-standard) desired properties of the logic are proven.

[122] Eugene Asarin, Gordon Pace, Gerardo Schneider, and Sergio Yovine. Algorithmic Analysis of Polygonal Hybrid Systems. Part II: Phase Portrait and Tools. Theoretical Computer Science, 390(1):1-26, January 2008. [ bib | DOI | .pdf ]
Polygonal differential inclusion systems (SPDI) are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. The reachability problem as well as the computation of certain objects of the phase portrait is decidable. In this paper we show how to compute the viability, controllability and invariance kernels, as well as semi-separatrix curves for SPDIs. We also present the tool SPeeDI+, which implements a DFS reachability algorithm and the phase portrait computation for SPDIs.

[123] Pablo Giambiagi, Olaf Owe, Anders P. Ravn, and Gerardo Schneider. Contract-oriented software development for internet services. In ERCIM News - Special: The Future WEB, number 72, pages 47-48. January 2008. [ bib | .pdf | .pdf ]
“COSoDIS´´ (Contract-Oriented Software Development for Internet Services) develops novel approaches to implement and reason about contracts in service oriented architectures (SOA). The rationale is that system developers benefit from abstraction mechanisms to work with these architectures. Therefore the goal is to design and test system modeling and programming language tools to empower SOA developers to deploy highly dynamic, negotiable and monitorable Internet services.

[124] Gordon Pace and Gerardo Schneider. Relaxing Goodness is Still Good for SPDIs. Technical Report 372, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, January 2008. [ bib | .pdf ]
Polygonal hybrid systems (SPDIs) are planar hybrid systems, whose dynamics are defined in terms of constant differential inclusions, one for each of a number of polygonal regions partitioning the plane. The reachability problem for SPDIs is known to be decidable, but depends on the goodness assumption - which states that the dynamics do not allow a trajectory to both enter and leave a region through the same edge. In this paper we extend the decidability result to generalised SPDIs (GSPDI), SPDIs not satisfying the goodness property, and give an algorithmic solution to decide reachability of such systems.

[125] Cristian Prisacariu and Gerardo Schneider. Towards model checking contracts. NWPT'07/FLACOS'07 Workshop Proceedings, Oslo, Norway, October 9-10 2007. Extended Abstract. [ bib | .pdf ]
[126] Einar B. Johnsen, Olaf Owe, and Gerardo Schneider. NWPT'07/FLACOS'07 Workshop Proceedings. Technical Report 366, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, October 2007. Editors. [ bib | .pdf ]
[127] Olaf Owe, Gerardo Schneider, and Arild Torjusen. Towards integration of XML in the Creol object-oriented language. Technical Report 365, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, October 2007. [ bib | .pdf ]
The integration of XML documents in object-oriented programming languages is becoming paramount with the advent of the use of Internet in new applications like web services. Such an integration is not easy in general and demands a careful language design. In this paper we propose an extension to Creol, a high level object-oriented modeling language for distributed systems, for handling XML documents.

[128] Gordon Pace, Cristian Prisacariu, and Gerardo Schneider. Model checking contracts -a case study. In 5th International Symposium on Automated Technology for Verification and Analysis (ATVA'07), volume 4762 of LNCS, pages 82-97, Tokyo, Japan, October 2007. Springer-Verlag. [ bib | DOI | .pdf ]
Contracts are agreements between distinct parties that determine rights and obligations on their signatories, and have been introduced in order to reduce risks and to regulate inter-business relationships. In this paper we show how a conventional contract can be written in the contract language CL, how to model the contract, and finally how to verify properties of the model using the NuSMV model checking tool.

[129] Olaf Owe, Gerardo Schneider, and Martin Steffen. Components, objects, and contracts. In 6th Workshop on Specification And Verification of Component-Based Systems (SAVCBS'07), ACM Digital Library, pages 95-98, Dubrovnik, Croatia, September 2007. [ bib | DOI | .pdf ]
Being a composite part of a larger system, a crucial feature of a component is its interface, as it describes the component's interaction with the rest of the system in an abstract manner. It is now commonly accepted that simple, functional interfaces are not expressive enough for components, and the trend is towards behavioral interfaces. We propose to go a step further and enhance components with contracts, i.e., agreements between two or more components on what they are obliged, permitted and forbidden when interacting. This way, contracts are modelled after legal contracts from conventional business or judicial arenas. Indeed, our work aims at a framework for e-contracts, i.e., “electronic” versions of legal documents describing the parties' respective duties. We take the object-oriented, concurrent programming language Creol as starting point and extend it with a notion of components. We then discuss a framework where components are accompanied by contracts and we sketch some ideas on how analysis of compatibility and compositionality could be done in such a setting.

[130] Johs H. Hammer and Gerardo Schneider. On the definition and policies of confidentiality. In 3rd International Symposium on Information Assurance and Security (IAS'07), pages 337-342, Manchester, UK, August 2007. IEEE Computer Society Press. [ bib | DOI | .pdf ]
In this paper we propose a more general definition of confidentiality, as an aspect of information security including information flow control. We discuss central aspects of confidentiality and their relation with norms and policies, and we introduce a language, with a deontic flavor, to express such norms and policies. Our language may be regarded as a first step towards a formal specification of security policies for confidentiality. We provide a number of examples of useful norms on confidentiality, and we discuss confidentiality policies from real scenarios.

[131] Olaf Owe, Gerardo Schneider, and Martin Steffen. Components, objects, and contracts. Technical Report 363, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, August 2007. [ bib | .pdf ]
Being a composite part of a larger system, a crucial feature of a component is its interface, as it describes the component's interaction with the rest of the system in an abstract manner. It is now commonly accepted that simple, functional interfaces are not expressive enough for components, and the trend is towards behavioral interfaces. We propose to go a step further and enhance components with contracts, i.e., agreements between two or more components on what they are obliged, permitted and forbidden when interacting. This way, contracts are modelled after legal contracts from conventional business or judicial arenas. Indeed, our work aims at a framework for e-contracts, i.e., “electronic” versions of legal documents describing the parties' respective duties. We take the object-oriented, concurrent programming language Creol as starting point and extend it with a notion of components. We then discuss a framework where components are accompanied by contracts and we sketch some ideas on how analysis of compatibility and compositionality could be done in such a setting.

[132] Gordon Pace, Cristian Prisacariu, and Gerardo Schneider. Model checking contracts -a case study. Technical Report 362, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, August 2007. [ bib | .pdf ]
Contracts are agreements between distinct parties that determine rights and obligations on their signatories, and have been introduced in order to reduce risks and to regulate inter-business relationships. In this paper we show how a conventional contract can be written in the contract language CL, how to model the contract, and finally how to verify properties of the model using the NuSMV model checking tool.

[133] Cristian Prisacariu and Gerardo Schneider. An Algebraic Structure for the Action-Based Contract Language CL - theoretical results. Technical Report 361, Department of Informatics, University of Oslo, Oslo, Norway, July 2007. Updated March 2008. [ bib | .pdf ]
We introduce in this paper an algebra of actions specially tailored to serve as basis of an action-based formalism for writing electronic contracts. The proposed algebra is based on the work on Kleene algebras but does not consider the Kleene star and introduces a new constructor for modelling concurrent actions. The algebraic structure is resource-aware and incorporates special actions called tests. In order to be in accordance with the intuition behind electronic contracts we consider new properties of the algebraic structure, in particular a conflict relation and a demanding partial order. We also study a canonical form of the actions which, among other things, helps to naturally define a notion of action negation. Our action negation is more general than just negation of atomic actions, but more restricted than the negation involving the universal relation. A standard interpretation of the algebra is given in terms of guarded rooted trees with specially defined operations on them. The algebra is proven to be complete over the standard interpretation.

Keywords: Electronic contracts, Kleene algebra, guarded rooted trees, concurrency, completeness
[134] Cristian Prisacariu and Gerardo Schneider. A formal language for electronic contracts. In 9th IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS'07), volume 4468 of LNCS, pages 174-189, Paphos, Cyprus, June 2007. Springer. [ bib | DOI | .pdf ]
In this paper we propose a formal language for writing electronic contracts, based on the deontic notions of obligation, permission, and prohibition. We take an ought-to-do approach, where deontic operators are applied to actions instead of state-of-affairs. We propose an extension of the mu-calculus in order to capture the intuitive meaning of the deontic notions, and to express concurrent actions. We provide a translation of the contract language into the logic, the semantics of which faithfully captures the meaning of obligation, permission and prohibition. We also show how our language captures most of the intuitive desirable properties of electronic contracts, as well as how it avoids most of the classical paradoxes of deontic logic. We finally show its applicability on a contract example.

[135] Gerardo Schneider. On the decidability of the reachability problem for GSPDIs. Technical Report 359, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, June 2007. [ bib | .pdf ]
Polygonal hybrid systems (SPDIs) are a subclass of hybrid systems whose dynamics is defined by constant differential inclusions, for which the reachability problem is decidable. The decidability result is based, among other things, on the fact that a trajectory cannot enter and leave a given region through the same edge. An SPDI satisfying the above restriction is said to have the goodness property. In a previous work we have given an incomplete proof of decidability of reachability for SPDIs when relaxing goodness. In this work we give a counter-example to such proof and we give an algorithm for semi-deciding reachability of such class of systems.

[136] Eugene Asarin, Gerardo Schneider, and Sergio Yovine. Algorithmic Analysis of Polygonal Hybrid Systems. Part I: Reachability. Theoretical Computer Science, 379(1-2):231-265, 2007. [ bib | DOI | .pdf ]
In this work we are concerned with the formal verification of two-dimensional non-deterministic hybrid systems, namely polygonal differential inclusion systems (SPDIs). SPDIs are a class of nondeterministic systems that correspond to piecewise constant differential inclusions on the plane, for which we study the reachability problem. Our contribution is the development of an algorithm for solving exactly the reachability problem of SPDIs. We extend the geometric approach due to Maler and Pnueli to non-deterministic systems, based on the combination of three techniques: the representation of the two-dimensional continuous-time dynamics as a one-dimensional discrete-time system (using Poincaré maps), the characterization of the set of qualitative behaviors of the latter as a finite set of types of signatures, and acceleration used to explore reachability according to each of these types.

[137] Olaf Owe, Gerardo Schneider, and Arild Torjusen. Towards integration of XML in the Creol object-oriented language. In NIK'07 proceedings, pages 107-111. Tapir Akademisk Forlag, 2007. [ bib | .pdf ]
The integration of XML documents in object-oriented programming languages is becoming paramount with the advent of the use of Internet in new applications like web services. Such an integration is not easy in general and demands a careful language design. In this paper we propose an extension to Creol, a high level object-oriented modeling language for distributed systems, for handling XML documents.

[138] Cristian Prisacariu and Gerardo Schneider. Towards a formal definition of electronic contracts. Technical Report 348, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, January 2007. [ bib | .pdf ]
In this technical report we discuss the main problems arising when defining a language for contracts. We propose a formal language for writing electronic contracts, based on the deontic notions of obligation, prohibition, and permission. We take an ought-to-do approach, where deontic operators are applied to actions instead of state-of-affairs. We propose an extension of the μ-calculus in order to capture the intuitive meaning of the deontic notions, and to express deterministic and concurrent actions. We provide a translation of the contract language into the logic, and show how the semantics faithfully captures the meaning of the contract language. We also show how our language captures most of the intuitive desirable properties of electronic contracts, as well as that it avoids most of the classical paradoxes of deontic logic. We finally show its applicability on a contract example.

[139] Gordon J. Pace and Gerardo Schneider. A compositional algorithm for parallel model checking of polygonal hybrid systems. In 3rd International Colloquium on Theoretical Aspects of Computing (ICTAC'06), volume 4281 of LNCS, pages 168-182, Tunis, Tunisia, November 2006. Springer-Verlag. [ bib | DOI | .pdf ]
The reachability problem as well as the computation of the phase portrait for polygonal hybrid systems (SPDI) has been shown to be decidable. The existing reachability algorithm is based on the exploitation of topological properties of the plane which are used to accelerate certain kind of cycles. The exponential nature of the algorithm makes the analysis of large systems generally unfeasible. In this paper we present a compositional parallel algorithm for reachability analysis of SPDIs. The parallelization is based on the qualitative information obtained from the phase portrait of an SPDI, in particular the controllability kernel.

[140] Pablo Giambiagi, Olaf Owe, Anders P. Ravn, and Gerardo Schneider. Language-based support for service oriented architectures: Future directions. In International Conference on Software and Data Technologies (ICSOFT'06), pages 339-344, Setúbal, Portugal, September 2006. INSTICC Press. [ bib | .pdf ]
The fast evolution of the Internet has popularized service-oriented architectures (SOA) with their promise of dynamic IT-supported inter-business collaborations. Yet this popularity does not reflect on the number of actual applications using the architecture. Programming models in use today make a poor match for the distributed, loosely-coupled, document-based nature of SOA. The gap is actually increasing. For example, interoperability between different organizations, requires contracts to reduce risks. Thus, high-level models of contracts are making their way into service-oriented architectures, but application developers are still left to their own devices when it comes to writing code that will comply with a contract. This paper surveys existing and future directions regarding language-based solutions to the above problem.

[141] Einar B. Johnsen, Gerardo Schneider, and Øystein Torget. Runtime validation of communication histories. In IEEE 2nd International Conference on Intelligent Computer Communication and Processing (ICCP'06), pages 161-168, Cluj-Napoca, Romania, September 2006. U.T.Press. [ bib | .pdf ]
Component based software development techniques are becoming increasingly popular, as they improve the software development process through component reuse. However component based development poses a challenge to software verification: How can we assert the correctness of a black-box component without having access to the internal logic of its implementation? In this paper, we propose an approach to this challenge by validating a component's communication history with respect to a specification of its observable behaviour using runtime verification techniques. For this purpose we present a simple specification language for describing component behaviour in terms of communication protocols, a language extension to support error handling at the communication level, and a prototype tool to monitor components and assert that they satisfy their protocol specification at runtime. The prototype is implemented for Java components, supports multithreaded access to the monitored components, and is demonstrated on two examples.

[142] Gordon Pace and Gerardo Schneider. Static analysis for state-space reduction of polygonal hybrid systems. In 4th International Conference on Formal Modelling and Analysis of Timed Systems (FORMATS'06), volume 4202 of LNCS, pages 306-321, Paris, France, September 2006. Springer-Verlag. [ bib | DOI | .pdf ]
Polygonal hybrid systems (SPDI) are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. The reachability problem as well as the computation of certain objects of the phase portrait, namely the viability, controllability and invariance kernels, for such systems is decidable. In this paper we show how to compute another object of an SPDI phase portrait, namely semi-separatrix curves and show how the phase portrait can be used for reducing the state-space for optimizing the reachability analysis.

[143] Gordon Pace and Gerardo Schneider. Static analysis of SPDIs for state-space reduction. Technical Report 336, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, April 2006. [ bib | .pdf ]
Polygonal hybrid systems (SPDI) are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. The reachability problem as well as the computation of certain objects of the phase portrait, namely the viability, controllability and invariance kernels, for such systems is decidable. In this paper we show how to compute another object of an SPDI phase portrait, namely semi-separatrix curves and show how the phase portrait can be used for reducing the state-space for optimizing the reachability analysis.

[144] Pablo Giambiagi, Olaf Owe, Anders P. Ravn, and Gerardo Schneider. Contract-based internet service software development: A proposal. Technical Report 333, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, January 2006. [ bib | .pdf ]
The fast evolution of the Internet has popularized service-oriented architectures dynamic IT-supported inter-business collaborations. Yet, interoperability between different organizations, requires contracts to reduce risks. Thus, high-level models of contracts are making their way into service-oriented architectures, but application developers are still left to their own devices when it comes to writing code that will comply with a contract. This paper surveys existing and proposes new language-based solutions to the above problem. Contracts are formalized as behavioral interfaces, and abstraction mechanisms may guide the developer in the production of contract-aware applications. We concentrate on contracts dealing with performance (real-time) and information flow (confidentiality).

[145] Gordon Pace and Gerardo Schneider. Improving polygonal hybrid systems reachability analysis through the use of the phase portrait. CSAW'06, Malta, 2006. [ bib | .pdf ]
[146] Pablo Giambiagi and Gerardo Schneider. Memory consumption analysis of java smart cards. In Proceedings of CLEI'05, Cali, Colombia, October 2005. [ bib | .pdf ]
Memory is a scarce resource in Java smart cards. Developers and card suppliers alike would want to make sure, at compile- or load-time, that a Java Card applet will not overflow memory when performing dynamic class instantiations. Although there are good solutions to the general problem, the challenge is still out to produce a static analyser that is certified and could execute on-card. We provide a constraint-based algorithm which determines potential loops and (mutually) recursive methods. The algorithm operates on the bytecode of an applet and is written as a set of rules associating one or more constraints to each bytecode instruction. The rules are designed so that a certified analyser could be extracted from their proof of correctness. By keeping a clear separation between the rules dealing with the inter- and intra-procedural aspects of the analysis we are able to reduce the space-complexity of a previous algorithm.

[147] Gilles Barthe, Mariela Pavlova, and Gerardo Schneider. Precise analysis of memory consumption using program logics. In 3rd IEEE International Conference on Software Engineering and Formal Methods (SEFM'05), pages 86-95, Koblenz, Germany, September 2005. IEEE Computer Society. [ bib | DOI | .pdf ]
Memory consumption policies provide a means to control resource usage on constrained devices, and play an important role in ensuring the overall quality of software systems, and in particular resistance against resource exhaustion attacks. Such memory consumption policies have been previously enforced through static analysis, which yield automatic bounds at the cost of precision, or run-time analysis, which incur an overhead that is not acceptable for constrained devices. In this paper, we study the use of logical methods to specify and statically verify precise memory consumption policies for Java bytecode programs. First, we demonstrate how the Bytecode Specification Language (a variant of the Java Modelling Language tailored to bytecode) can be used to specify precise memory consumption policies for (sequential) Java applets, and how verification tools can be used to enforce such memory consumption policies. Second, we consider the issue of inferring some of the annotations required to express the memory consumption policy, and report on an inference algorithm. Our broad conclusion is that logical methods provide a suitable means to specify and verify expressive memory consumption policies, with an acceptable overhead.

[148] David Cachera, Thomas Jensen, David Pichardie, and Gerardo Schneider. Certified memory usage analysis. In Formal Methods (FM'05), volume 3582 of LNCS, pages 91-106, Newcastle Upon Tyne, UK, July 2005. Springer-Verlag. [ bib | DOI | .pdf ]
We present a certified algorithm for resource usage analysis, applicable to languages in the style of Java byte code. The algorithm verifies that a program executes in bounded memory. The algorithm is destined to be used in the development process of applets and for enhanced byte code verification on embedded devices. We have therefore aimed at a low-complexity algorithm derived from a loop detection algorithm for control flow graphs. The expression of the algorithm as a constraint-based static analysis of the program over simple lattices provides a link with abstract interpretation that allows to state and prove formally the correctness of the analysis with respect to an operational semantics of the program. The certification is based on an abstract interpretation framework implemented in the Coq proof assistant which has been used to provide a complete formalisation and formal verification of all correctness proofs.

[149] Gerardo Schneider. Towards computing phase portrait objects of polygonal hybrid systems on surfaces. Technical Report 331, Department of Informatics, University of Oslo, PO Box 1080 Blindern, N-0316 Oslo, Norway, March 2005. [ bib | .pdf ]
Polygonal hybrid systems (SPDIs) are a subclass of hybrid systems whose dynamics is defined by constant differential inclusions. We can define SPDIs on surfaces, obtaining a new class of hybrid systems. In this paper we define and compute various phase portrait objects of this new class: invariance, controllability and viability kernels and separatrix sets.

[150] Gerardo Schneider. A constraint-based algorithm for analysing memory usage on java cards. Technical Report RR-5440, INRIA, December 2004. [ bib | .ps.gz ]
We address in this paper the problem of statically determining whether a JavaCard applet may produce a memory overflow because of the dynamic instantiation of classes inside cycles. We provide a constraint-based algorithm which determines potential loops and (mutually) recursive methods. The algorithm operates on the byte-code of an applet. It is written as a set of rules -one for each byte-code instruction- which allows a compositional reasoning and it comprises both inter- and intra-procedural analysis. We aimed at an algorithm suitable to be fed into the proof assistant Coq in order to extract a certified memory usage analyser. We prove termination of the algorithm as well as its soundness and completeness with respect to an abstraction of the operational semantics of the language.

[151] Gerardo Schneider. Memory usage estimation for java cards. NWPT'2004, Uppsala, Sweden, October 06-08 2004. Extended Abstract. [ bib | .ps.gz ]
[152] Pablo Giambiagi, Gerardo Schneider, and Frank D. Valencia. On the expressiveness of infinite behavior and name scoping in process calculi. In Foundations of Software Science and Computation Structures (FOSSACS'04), volume 2987 of LNCS, pages 226-240, Barcelone, Spain, March 2004. Springer-Verlag. [ bib | DOI | .pdf ]
In the literature there are several CCS-like process calculi differing in the constructs for the specification of infinite behavior and in the scoping rules for channel names. In this paper we study various representatives of these calculi based upon both their relative expressiveness and the decidability of divergence. We regard any two calculi as being equally expressive iff for every process in each calculus, there exists a weakly bisimilar process in the other. By providing weak bisimilarity preserving mappings among the various variants, we show that in the context of relabeling-free and finite summation calculi: (1) CCS with parameterless (or constant) definitions is equally expressive to the variant with parametric definitions. (2) The CCS variant with replication is equally expressive to that with recursive expressions and static scoping. We also state that the divergence problem is undecidable for the calculi in (1) but decidable for those in (2). We obtain this from (un)decidability results by Busi, Gabbrielli and Zavattaro, and by showing the relevant mappings to be computable and to preserve divergence and its negation. From (1) and the well-known fact that parametric definitions can replace injective relabelings, we show that injective relabelings are redundant (i.e., derived) in CCS (which has constant definitions only).

[153] Michael Baldamus, Richard Mayr, and Gerardo Schneider. A backward/forward strategy for verifying safety properties of infinite-state systems. Technical Report 2003-065, Department of Information Technology, Uppsala University, January 2004. [ bib | .pdf ]
This paper has two main contributions: For one, we describe a general method for verifying safety properties of non-well-quasi-ordered infinite-state systems for which reachability is undecidable in general, the question being whether a set U of configurations is reachable. In many cases this problem can be solved as follows: First, one constructs a well-quasi-ordered overapproximation of the system in question. Thereby one can compute an overapproximation of the set Pre*(U) of all predecessors of U. Second, one performs an exact bounded forward search for U (starting at the initial state) which always stays inside the already computed overapproximation of Pre*(U), thus curbing the search space. This restricted forward search is more efficient than a normal forward search, yielding answers of the form YES, NO, or UNKNOWN, where the YES and NO answers are always correct. As our second main contribution herein, we apply our method to relabelling-free CCS with finite sums, which is already a process calculus for which reachability is undecidable. To our knowledge, this part is actually the first application of well-structered systems to verifying safety properties in process calculi. The application is done via a special Petri nets semantics for the calculus that we consider.

[154] Pablo Giambiagi, Gerardo Schneider, and Frank D. Valencia. On the expressiveness of CCS-like calculi. Technical Report 2004-002, Department of Information Technology, Uppsala University, Sweden, January 2004. [ bib | .ps.gz ]
This an extended version of the FOSSACS 2004 paper.

[155] Gerardo Schneider. Computing invariance kernels of polygonal hybrid systems. Nordic Journal of Computing, 11(2):194-210, 2004. [ bib | .pdf ]
Polygonal hybrid systems are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. One way of analysing such systems (and hybrid systems in general) is through the study of their phase portrait, which characterise the systems' qualitative behaviour. In this paper we identify and compute an important object of polygonal hybrid systems' phase portrait, namely invariance kernels. An invariant set is a set of points such that any trajectory starting in such point keep necessarily rotating in the set forever and the invariance kernel is the largest of such sets. We show that this kernel is a non-convex polygon and we give a non-iterative algorithm for computing the coordinates of its vertexes and edges. Moreover, we show some properties of such systems' simple cycles.

[156] Gordon Pace and Gerardo Schneider. Model checking polygonal differential inclusions using invariance kernels. In 5th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI'04), number 2937 in LNCS, pages 110-121, Venice, Italy, December 2003. Springer Verlag. [ bib | DOI | .pdf ]
Polygonal hybrid systems are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. Here, we identify and compute an important object of such systems' phase portrait, namely invariance kernels. An invariant set is a set of initial points of trajectories which keep rotating in a cycle forever and the invariance kernel is the largest of such sets. We show that this kernel is a non-convex polygon and we give a non-iterative algorithm for computing the coordinates of its vertices and edges. Moreover, we present a breadth-first search algorithm for solving the reachability problem for such systems. Invariance kernels play an important role in the algorithm.

[157] Pablo Giambiagi, Gerardo Schneider, and Frank D. Valencia. A note on scope and infinite behaviour in CCS-like calculi. NWPT'2003, Turku, Finland, October 29-31 2003. Extended Abstract. [ bib | .ps.gz ]
[158] Gerardo Schneider. Computing invariance kernels of polygonal hybrid systems. NWPT'2003, Turku, Finland, October 29-31 2003. Extended Abstract. [ bib | .ps.gz ]
[159] Gerardo Schneider. Invariance kernels of polygonal differential inclusions. Technical Report 2003-042, Department of Information Technology, Uppsala University, August 2003. [ bib | .ps.gz ]
This is the technical report corresponding to the journal paper "Computing invariance kernels of polygonal hybrid systems".

[160] Eugene Asarin and Gerardo Schneider. Widening the boundary between decidable and undecidable hybrid systems. In 13th International Conference on Concurrency Theory (CONCUR'02), volume 2421 of LNCS, pages 193-208, Brno, Czech Republic, August 2002. Springer-Verlag. [ bib | DOI | .pdf ]
We revisited decidability of the reachability problem for low dimensional hybrid systems. Even though many attempts have been done to draw the boundary between decidable and undecidable hybrid systems there are still many open problems in between. In this paper we show that the reachability question for some two dimensional hybrid systems are undecidable and that for other 2-dim systems this question remains unanswered, showing that it is as hard as the reachability problem for Piecewise Affine Maps, that is a well known open problem.

[161] Eugene Asarin, Gordon Pace, Gerardo Schneider, and Sergio Yovine. SPeeDI: a verification tool for polygonal hybrid systems. In Computer Aided Verification (CAV'02), volume 2404 of LNCS, pages 354-358, Copenhagen, Denmark, July 2002. Springer-Verlag. [ bib | DOI | .pdf ]
We present SPeeDI, a tool for reachability analysis of Polygonal Hybrid Systems (SPDIs)

[162] Gerardo Schneider. Algorithmic Analysis of Polygonal Hybrid Systems. PhD thesis, VERIMAG - UJF, Grenoble, France, July 2002. [ bib | .pdf ]
A polygonal differential inclusion system (SPDI) is a non-deterministic planar hybrid system which can be represented by piecewise constant differential inclusions. In this thesis we are concerned with several theoretical and practical questions related to SPDIs such as reachability analysis and phase portrait construction. First we show that the reachability question for SPDIs is indeed decidable. Our procedure is not based on the computation of the reach-set but rather on the computation of the limit of individual trajectories. A key idea is the use of edge-to-edge one-dimensional affine Poincaré maps, the fix-points of which are easily computed. By taking advantage of this information, cycles can be accelerated in most cases. The above reachability algorithm has been implemented in a tool called SPeeDI. We next build the phase portrait of such systems. In particular, we identify the viability kernels of simple cycles. Such kernels are the set of starting points of trajectories that can keep rotating in the cycles forever. We also introduce the notion of controllability kernel of simple cycles as the set of points such that any two points of the set are reachable from each other via trajectories that remain on the set. We give non-iterative algorithms to compute both kernels. We obtain the SPDI phase portrait computing all the viability and controllability kernels. We finally study the decidability of the reachability problem for other 2-dimensional hybrid systems. We introduce hierarchical piecewise constant derivative systems (HPCDs) and 2-dimensional manifolds with piecewise constant derivative systems. We show that the reachability problem for the above two classes of systems is as hard as the reachability problem for piecewise affine maps that is known to be an open problem. We also show that the reachability question for slight extensions of HPCDs are undecidable.

[163] Eugene Asarin, Gerardo Schneider, and Sergio Yovine. Towards computing phase portraits of polygonal differential inclusions. In 5th International Workshop on Hybrid Systems: Computation and Control (HSCC'02), number 2289 in LNCS, pages 49-61, Stanford, USA, March 2002. Springer-Verlag. [ bib | DOI | .pdf ]
Polygonal hybrid systems are a subclass of planar hybrid automata which can be represented by piecewise constant differential inclusions. Here, we study the problem of defining and constructing the phase portrait of such systems. We identify various important elements of it, such as viability and controllability kernels, and propose an algorithm for computing them all. The algorithm is based on a geometric analysis of trajectories.

[164] Eugene Asarin, Gerardo Schneider, and Sergio Yovine. On the decidability of the reachability problem for planar differential inclusions. In 4th International Workshop on Hybrid Systems: Computation and Control (HSCC'01), number 2034 in LNCS, pages 89-104, Rome, Italy, 2001. Springer-Verlag. [ bib | DOI | .pdf ]
In this paper we develop an algorithm for solving the reachability problem of two-dimensional piece-wise rectangular differential inclusions. Our procedure is not based on the computation of the reach-set but rather on the computation of the limit of individual trajectories. A key idea is the use of one-dimensional affine Poincaré maps for which we can easily compute the fixpoints. As a first step, we show that between any two points linked by an arbitrary trajectory there always exists a trajectory without self-crossings. Thus, solving the reachability problem requires considering only those. We prove that, indeed, there are only finitely many “qualitative types” of those trajectories. The last step consists in giving a decision procedure for each of them. These procedures are essentially based on the analysis of the limits of extreme trajectories. We illustrate our algorithm on a simple model of a swimmer spinning around a whirlpool.

[165] Eugene Asarin, Gerardo Schneider, and Sergio Yovine. On the decidability of the reachability problem for planar differential inclusions. Technical report, VERIMAG, Grenoble, France, January 2001. [ bib | .ps.gz ]
This is an extended version of the HSCC'2001 paper.

[166] Gerardo Lafferriere, George J. Pappas, Gerardo Schneider, and Sergio Yovine. Parameter synthesis in robot motion planning using symbolic reachability computation. In Proceedings of 8th IEEE Mediterranean Conference on Control and Automation, Rio, Greece, July 2000. [ bib | .pdf ]
A well known problem in robotics is the motion planning problem in the presence of static obstacles. The trajectory of the robot must satisfy a linear differential equation as well as possbile input and state constraints. In this paper, we explore the use of symbolic reachability algorithms to decide whether the motion planning problem is feasible or not. In the case where it is feasible, it computes a feasible nominal input profile satisfying all system constraints. Our algorithm is based on quantifier elimination techniques in the ordered field of the reals, which have been recently applied to compute the reachable space for classes of linear hybrid systems.

[167] Gerardo Schneider and Xu Qiwen. Towards an Operational Semantics of Verilog. Technical Report 147, UNU/IIST, P.O.Box 3058, Macau, October 1998. [ bib | .ps.gz ]
We give an operational semantics of V-, a simple version of Verilog hardware description language.. The language is simple enough for experimenting formalisation, but contains sufficient features for being practically relevant. V- programs can exhibit a rich variety of computations that justifies the introduction of labels in the transition relation to represent the execution of components, time passing and passive transitions. The semantics is compositional and can be used as the formal basis of a formal theory of Verilog.

[168] Gerardo Schneider and Xu Qiwen. Towards a formal semantics of verilog using duration calculus. In 5th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT'98), number 1486 in LNCS, pages 282-293, Lyngby, Denmark, September 1998. Springer Verlag. [ bib | DOI | .pdf ]
We formalise the semantics of V-, a simple version of Verilog hardware description language using an extension of Duration Calculus. The language is simple enough for experimenting formalisation, but contains sufficient features for being practically relevant. V- programs can exhibit a rich variety of computations, and it is therefore necessary to extend Duration Calculus with several features, including Weakly Monotonic Time, infinite intervals and fixed point operators. The semantics is compositional and can be used as the formal basis of a formal theory of Verilog.

[169] Pablo Giambiagi and Gerardo Schneider. A Verilog specification of STARI. Technical report, UNU/IIST, P.O.Box 3058, Macau, February 1998. [ bib | .ps.gz ]
Verilog is a Hardware Description Language used for the design and description of hardware in a behavioral and structural way. It has some interesting features like concurrency, synchronism, shared variables, non-blocking assignments (scheduled assignments), timing controls, infinite computations, zero-time computations, etc., that makes it an interesting language to study. This report explains some features of Verilog in an informal way through small examples and presents the Verilog code of STARI as a main application.

[170] Gerardo Schneider and Xu Qiwen. Towards a Formal Semantics of Verilog using Duration Calculus. Technical Report 133, UNU/IIST, P.O.Box 3058, Macau, February 1998. [ bib | .ps.gz ]
Verilog is a Hardware Description Language used for the design and description of hardware in a behavioral and structural way. The meaning of a Verilog program is given by a simulation semantics, which is based on events and lack the necessary formality. Clearly it would be desirable to have a logical formal semantics to reason about properties of Verilog programs and to prove, among other things, the equivalence between programs (specification and implementation). Verilog has some interesting features like concurrency, synchronism, shared variables, non-blocking assignments (scheduled assignments), timing controls, infinite computations, zero-time computations, etc., that makes it an interesting language to study. WDC (Duration Calculus with Weakly Monotonic Time), introduced by Pandya and Dang, seems to provide an appropriate semantical framework for formalising languages with zero-time delays and computations. We introduce a fixed point operator and infinite intervals in WDC obtaining MWDCI. We use MWDCI to give a compositional abstract semantics to the V- subset of Verilog and in particular the fixed point operator is used to give semantics to the loop statements modelling infinite computation taking zero time (infinite in the discrete time) as well as infinite computation in the macro-time. We prove some results (at the semantical level) about the fixed point operator.

[171] Gerardo Schneider and Antônio C. da Rocha Costa. Coherence space as event structure and concrete data structure. XXIV SEMISH, Brasilia, Brazil, August 1997. [ bib ]
[172] Gerardo Schneider and Rafael Accorsi. Introduction to linear logic. Primeiro Workshop sobre Métodos Formais e Qualidade de Software, Porto alegre, Brazil, July 1996. (In Portuguese). [ bib ]
[173] Gerardo Schneider and Antônio C. da Rocha Costa. Sequential and parallel computation strategies on coherence spaces. CLEI'96, Bogotá, Colombia, June 1996. [ bib ]
[174] Gerardo Schneider. Sequential and parallel computation strategies on coherence spaces. Master's thesis, CPGCC - UFRGS, Porto Alegre, Brazil, March 1996. (In Portuguese). [ bib | .ps.gz ]
[175] Gerardo Schneider and Laira V. Toscani. Fixed point theory in computer science. Anais do CNMAC, Curitiba, Brazil, August 1995. (Extended abstract, in Portuguese). [ bib ]
[176] Gerardo Schneider. Fixed point theory in Computer Science. Technical report, CPGCC da UFRGS, Porto Alegre, Brazil, January 1995. (In Portuguese). [ bib ]
[177] Gerardo Schneider. An algebraic specification language. Technical report, CPGCC da UFRGS, Porto Alegre, Brazil, July 1994. (In Portuguese). [ bib ]
[178] Gerardo Schneider. Using induction for algorithm design. Technical report, Dissertation for Engineering Degree. Facultad Regional Concepción del Uruguay - UTN, Concepción del Uruguay, Argentina, December 1992. (In Spanish). [ bib ]

This file was generated by bibtex2html 1.97.