A Mechanized Model of the Theory of Objects 1.Functional  -calculus in Isabelle 2.Confluence Proof in Isabelle 3.Ongoing Work, Applications, Conclusion.

Slides:



Advertisements
Similar presentations
Request Scheduling for Multiactive Objects StudentJustine Rochas SupervisorLudovic Henrio Research lab INRIA-I3S-CNRS-UNS Research teamOASIS Master Thesis.
Advertisements

B. Ross Cosc 4f79 1 Frames Knowledge bases can be enhanced by using principles from frame knowledge representation (similar to object orientation) This.
VIDE als voortzetting van Cocktail SET Seminar 11 september 2008 Dr. ir. Michael Franssen.
CS 355 – Programming Languages
CLF: A Concurrent Logical Framework David Walker Princeton (with I. Cervesato, F. Pfenning, K. Watkins)
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous.
Foundations of Interaction ETAPS `05 0 Ex nihilo: a reflective higher- order process calculus The  -calculus L.G. Meredith 1 & Matthias Radestock.
Formal Analysis of Symbolic Computation Systems for Algebraic Topology Julio Rubio Universidad de La Rioja (Spain)
A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato ITT Industries,
1 Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications.
POPLmark 1A in Cinic Evan Austin, Aaron Stump, and Edwin Westbrook 1.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Towards a HOL Framework for the Deductive Analysis of Hybrid Control Systems ADPM’2000 Norbert Völker University of Essex, England.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Chapter 1 Principles of Programming and Software Engineering.
Tim Sheard Oregon Graduate Institute Lecture 11: A Reduction Semantics for MetaML CS510 Section FSC Winter 2005 Winter 2005.
Safe composition of distributed adaptable components A distributed component model Behavioural specification and verification Ludovic Henrio and Eric Madelaine.
CAS- 734 (Presentation -1) By : Vasudha Kapil
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
© Kenneth C. Louden, Chapter 11 - Functional Programming, Part III: Theory Programming Languages: Principles and Practice, 2nd Ed. Kenneth C. Louden.
Formalism and Platform for Autonomous Distributed Components Bio-inspired Networks and Services A Distributed Component Model Formalisation in Isabelle.
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
1 Knowledge Representation. 2 Definitions Knowledge Base Knowledge Base A set of representations of facts about the world. A set of representations of.
A Locally Nameless Theory of Objects 1.Introduction:  -calculus and De Bruijn notation 2.locally nameless technique 3.formalization in Isabelle and proofs.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Rewriting Logic Model of Compositional Abstraction of Aspect-Oriented Software FOAL '10Mar. 15, 2010 Yasuyuki Tahara, Akihiko Ohsuga The University of.
1 Proving aspect-oriented programming laws Leonardo Cole Paulo Borba Alexandre Mota Informatics Center Federal University of.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
A Mechanized Model for CAN Protocols Context and objectives Our mechanized model Results Conclusions and Future Works Francesco Bongiovanni and Ludovic.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
© Kenneth C. Louden, Chapter 11 - Functional Programming, Part III: Theory Programming Languages: Principles and Practice, 2nd Ed. Kenneth C. Louden.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
ASPfun: A Distributed Object Calculus and its Formalization in Isabelle Work realized in collaboration with Florian Kammüller and Henry Sudhof (Technische.
Tool Support for proof Engineering Anne Mulhern Computer Sciences Department University of Wisconsin-Madison Madison, WI USA
An Axiomatic Basis for Computer Programming Robert Stewart.
Types and Programming Languages Lecture 12 Simon Gay Department of Computing Science University of Glasgow 2006/07.
Implementing a Dependently Typed λ -Calculus Ali Assaf Abbie Desrosiers Alexandre Tomberg.
A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
CS5205Semantics1 CS5205: Foundation in Programming Languages Semantics Static Semantics Dynamic Semantics Operational Semantics Big-step Small-Step Denotational.
Extension of Separation Logic for Stack Reasoning Jiang Xinyu.
Types and Programming Languages Lecture 16 Simon Gay Department of Computing Science University of Glasgow 2006/07.
Interface specifications At the core of each Larch interface language is a model of the state manipulated by the associated programming language. Each.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Towards trustworthy refactoring in Erlang
A Verified Compiler for an Impure Functional Language
Distributed Components and Futures: Models and Challenges
Automating Induction for Solving Horn Clauses
Chapter 10: Mathematical proofs
IS 2935: Developing Secure Systems
Engineering Aspects of Formal Metatheory
CS 611: Lecture 10 More Lambda Calculus September 20, 1999
CS 611: Lecture 10 More Lambda Calculus September 20, 1999
Program correctness Model-checking CTL
Superposition with Combinators
Presentation transcript:

A Mechanized Model of the Theory of Objects 1.Functional  -calculus in Isabelle 2.Confluence Proof in Isabelle 3.Ongoing Work, Applications, Conclusion Ludovic Henrio and Florian Kammüller Objective Provide a framework for (mechanically) proving properties on object-oriented languages and programs  Distribution, parallelism, concurrence

Each method is a function with a parameter: “self” Functional  -calculus Syntax Semantics (Abadi - Cardelli) Why functional?  updating a field creates a new object (copy) 1 - Functional  -calculus in Isabelle

An Example 1 - Functional  -calculus in Isabelle

An Example 1 - Functional  -calculus in Isabelle

Isabelle/HOL Russell’s Theory of Types; Higher Order Logic (HOL) Meta logic HOL 1 - Functional  -calculus in Isabelle

Functional  -calculus in Isabelle Syntax 1 - Functional  -calculus in Isabelle

What are De Bruijn Indices? De Bruijn indices avoid having to deal with  -conversion Variables are natural numbers depending on the depth of the parameter 1 - Functional  -calculus in Isabelle

Why De Bruijn Indices? Drawbacks: l Terms are “ugly”  We are interested in general properties / not for extracting an interpreter … l Lot of additional definitions/lemmas are necessary:  Definition of subst and lift: semantics more complex  Proofs of several additional (easy) lemmas Advantages l Established approach l Reuse Nipkow’s framework for confluence of the -calculus Alternative approaches, e.g. nominal techniques  probably better on the long term De Bruijn indices are perhaps not the best solution but allowed a fast implementation 1 - Functional  -calculus in Isabelle

Functional  -calculus in Isabelle Syntax Semantics substitution subterm reduction 1 - Functional  -calculus in Isabelle

2 - Confluence

Confluence Principles Ensures that all computations are equivalent (same result) Generally based on a diamond property: Diamond  confluent: 2 - Confluence a b c d p q r s

Confluence Principles (2) In general we have to introduce a new reduction that verifies the diamond property    confluent and 2 - Confluence a b c d

Confluence of the  -calculus l Based on Nipkow’s framework: Confluence for the -calculus  Useful lemmas: commute, Church-Rosser, diamond  Structure of a confluence proof in Isabelle l Definition of a parallel reduction (verifies diamond)  Like for -calculus, can reduce all sub-terms in parallel  Also includes (semantics of the  -calculus) 2 - Confluence

Number of methods Reducing in Parallel inside Object Subgoal (looks trivial but proof is tricky): Solution: split into several reductions on object fields 2 - Confluence  -calculus confluence proof similar to Nipkow’s framework but: Much less automatic Difference of granularity between lists of terms and objects More cases for diamond (more constructors/rules)

In the Meantime … Objects as finite maps from labels to methods instead of lists of methods  Definition of finite maps and a new induction principle  Closer to original  -calculus (syntax and semantics); new recurrence principle on terms Formalization of the basic type system for the functional  -calculus  Typing rules (Abadi - Cardelli)  Subject reduction, progress (no stuck configuration) 3 - Ongoing Work, Applications, Conclusion

Todo List Remove De Bruijn indices  “nominal techniques”? Introduce methods with a parameter:  (x,y) / a.l(b) Apply to other results on object languages (concurrence, mobility, …)  A base model for Aspect Oriented Programming 3 - Ongoing Work, Applications, Conclusion

Towards Distribution A model for the ASP calculus in Isabelle; ASP formalizes:  Active objects (AO) without shared memory  AO is the entry point and the master object of the activity  Communicating by asynchronous method calls with futures Currently:  Definition of a functional ASP in Isabelle  Proof of well-formedness of the reduction (no creation of reference to non-existing active objects or futures) To do ….  A type system for ASP  Proof of confluence for the functional ASP  Extension of the concurrency in the functional calculus  Case of the imperative ASP calculus … 3 - Ongoing Work, Applications, Conclusion

Conclusion A formalization of the  -calculus in Isabelle A confluence proof for the functional  -calculus  Parallel reduction inside objects A base framework for developments on objects, confluence and concurrency A lot of possible applications (distribution / typing / AOP …) Experiments on Isabelle (few months development)  User-friendly, relatively fast development  Finding the right structure/representation is crucial  Difficulties when modifying / reusing code Ongoing Work, Applications, Conclusion