Overview of the KeY System

Size: px
Start display at page:

Download "Overview of the KeY System"

Transcription

1 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Overview of the KeY System Copyright Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner Hähnle at Chalmers University and modified by Cesare Tinelli at the University of Iowa. These notes are copyrighted materials and may not be used in other course settings outside of the University of Iowa in their current form or modified form without the express written permission of one of the copyright holders. 22c181: Formal Methods in Software Engineering p.1

2 Contents of Second Part of Course Overview of KeY UML and its semantics Introduction to OCL Specifying requirements with OCL Modelling of Systems with Formal Semantics Propositional & First-order logic, sequent calculus OCL to Logic, horizontal proof obligations, using KeY Dynamic logic, proving program correctness Java Card DL Vertical proof obligations, using KeY Wrap-up, trends 22c181: Formal Methods in Software Engineering p.2

3 Philosophy of KeY Tool Formal Methods must and can be integrated into commercial processes, tools and languages for software development 22c181: Formal Methods in Software Engineering p.3

4 Philosophy of KeY Tool Formal Methods must and can be integrated into commercial processes, tools and languages for software development Integrated tool for Modeling Development Formal specification Formal verification of object oriented programs 22c181: Formal Methods in Software Engineering p.3

5 Technologies Used in this Course Standard language for Modeling of Software Unified Modeling Language UML (Borland Together) Visual language for OO Modeling Standard of Object Management Group (OMG) Object Constraint Language OCL Formal textual language for requirements specification UML sub-standard Modern industrial programming language Logic, Automated Deduction First-order logic, Dynamic Logic, Theorem proving 22c181: Formal Methods in Software Engineering p.4

6 Other Interfaces KeY plugin for Eclipse IDE Java Modeling Language JML Formal Interface Specification Language for Java Wide-spread in academic projects Automatic Translation from OCL into English To come soon: Visual symbolic debugger based on symbolic program execution 22c181: Formal Methods in Software Engineering p.5

7 The KeY System Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.6

8 The KeY System UML Design, Java Coding Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.6

9 Target Language: Java Card 22c181: Formal Methods in Software Engineering p.7

10 Target Language: Java Card Java Card Sun s Java dialect for smart cards and embedded systems 22c181: Formal Methods in Software Engineering p.7

11 Target Language: Java Card Java Card Sun s Java dialect for smart cards and embedded systems Java Card is relevant target language for verification: Restrictions admit complete coverage (more later) Applications smallish Feasability 22c181: Formal Methods in Software Engineering p.7

12 Target Language: Java Card Java Card Sun s Java dialect for smart cards and embedded systems Java Card is relevant target language for verification: Restrictions admit complete coverage (more later) Applications smallish Applications safety & security critical Often impossible to update smart cards/embedded systems Feasability Significance 22c181: Formal Methods in Software Engineering p.7

13 How Works 22c181: Formal Methods in Software Engineering p.8

14 Conventional CASE-Based Development UML Model 22c181: Formal Methods in Software Engineering p.8

15 Conventional CASE-Based Development UML Model CASE Tool (partial implementation) 22c181: Formal Methods in Software Engineering p.8

16 Conventional CASE-Based Development UML Model CASE Tool (partial implementation) 22c181: Formal Methods in Software Engineering p.8

17 The KeY System Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.9

18 The KeY System Formal Specification Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.9

19 Specification Language: OCL UML has textual specification language as sub-standard: Object Constraint Language (OCL) OOP-like syntax, ASCII designed for easy navigation within UML class diagrams, etc. strongly typed formal semantics: translation to typed FOL OCL expressions reduce legal instances of underlying UML diagram Class invariants Pre-/postconditions of operations and methods Permits formal specification of functional requirements Other specification languages: Alloy, JML, RSL,... 22c181: Formal Methods in Software Engineering p.10

20 Formal Specification in OCL UML Model CASE Tool (partial implementation) OCL 22c181: Formal Methods in Software Engineering p.11

21 Parsing OCL UML Model CASE Tool (partial implementation) AST OCL OCL Parser Univ Dresden 22c181: Formal Methods in Software Engineering p.11

22 Parsing OCL UML Model CASE Tool (partial implementation) XML API AST OCL OCL Parser Univ Dresden 22c181: Formal Methods in Software Engineering p.11

23 Where to Take Formal Specification from? UML Model CASE Tool (partial implementation)? XML API AST OCL OCL Parser Univ Dresden 22c181: Formal Methods in Software Engineering p.11

24 (Library of Patterns and Idioms) UML Model Patterns/Idioms CASE Tool (partial implementation) XML API AST OCL OCL Parser Univ Dresden 22c181: Formal Methods in Software Engineering p.12

25 ( OCL Library) UML Model Patterns/Idioms CASE Tool (partial implementation) OCL (partial specification) XML API AST OCL OCL Parser Univ Dresden 22c181: Formal Methods in Software Engineering p.12

26 The KeY System Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.13

27 The KeY System Verification Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.13

28 Tasks of Verification Component 22c181: Formal Methods in Software Engineering p.14

29 Tasks of Verification Component Translation OCL logic Need to simplify resulting formulas 22c181: Formal Methods in Software Engineering p.14

30 Tasks of Verification Component Translation OCL logic Synthesize FOL formulas from horizontal verification tasks Eg, structural subtyping 22c181: Formal Methods in Software Engineering p.14

31 Tasks of Verification Component Translation OCL logic Synthesize FOL formulas from horizontal verification tasks Synthesize Java Card DL formulas from vertical verification tasks Eg, method invariants, total correctness 22c181: Formal Methods in Software Engineering p.14

32 Tasks of Verification Component Translation OCL logic Synthesize FOL formulas from horizontal verification tasks Synthesize Java Card DL formulas from vertical verification tasks Driving the deduction component 22c181: Formal Methods in Software Engineering p.14

33 Tasks of Verification Component Translation OCL logic Synthesize FOL formulas from horizontal verification tasks Synthesize Java Card DL formulas from vertical verification tasks Driving the deduction component Correctness management 22c181: Formal Methods in Software Engineering p.14

34 Translation, Horizontal Verification UML Model Patterns/Idioms CASE Tool (partial implementation) OCL (partial specification) XML API First order logic AST OCL OCL Parser Univ Dresden Translation formula synthesis (horiz. verif.) 22c181: Formal Methods in Software Engineering p.15

35 Parsing Java UML Model Patterns/Idioms CASE Tool (partial implementation) OCL (partial specification) RecodeR Univ Karlsruhe AST XML API First order logic AST OCL OCL Parser Univ Dresden Translation formula synthesis (horiz. verif.) 22c181: Formal Methods in Software Engineering p.15

36 Translation, Vertical Verification UML Model Patterns/Idioms CASE Tool (partial implementation) OCL (partial specification) RecodeR Univ Karlsruhe AST XML API Java Card DL AST OCL OCL Parser Univ Dresden Translation formula synthesis (vert. verif.) 22c181: Formal Methods in Software Engineering p.15

37 Deductive Verification UML Model Patterns/Idioms CASE Tool (partial implementation) OCL (partial specification) RecodeR Univ Karlsruhe AST XML API Java Card DL AST OCL OCL Parser Univ Dresden Translation formula synthesis (vert. verif.) Formal proof Interactive/Automated Theorem Prover 22c181: Formal Methods in Software Engineering p.15

38 The KeY System Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.16

39 The KeY System Proving Lightweight Usage of Formal Methods FM expert Logic xpgwizard g English OCL/UML gjml g Logic gtaclets g Borland Together CC Eclipse IDE OCL/NL Tool KeY Plugin KeY Plugin JML Browser OCL/FOL Translation JML/FOL Translation Synthesis of Proof Obligations Rule Base KeY Prover a 22c181: Formal Methods in Software Engineering p.16

40 The Program Logic: Dynamic Logic Syntax Modal operators [p] and p for each program p Statements about final state of p 22c181: Formal Methods in Software Engineering p.17

41 The Program Logic: Dynamic Logic Syntax Modal operators [p] and p for each program p Statements about final state of p Semantics [p] F : If p terminates normally, then F holds in the final state (partial correctness) p F: p terminates normally and F holds in the final state (total correctness) 22c181: Formal Methods in Software Engineering p.17

42 Java vs. Java Card Java features that are not present in Java Card 22c181: Formal Methods in Software Engineering p.18

43 Java vs. Java Card Java features that are not present in Java Card Threads unrestricted concurrency 22c181: Formal Methods in Software Engineering p.18

44 Java vs. Java Card Java features that are not present in Java Card Threads unrestricted concurrency Floating point arithmetic IEEE standard 754 is huge... 22c181: Formal Methods in Software Engineering p.18

45 Java vs. Java Card Java features that are not present in Java Card Threads unrestricted concurrency Floating point arithmetic IEEE standard 754 is huge... Dynamic class loading Implementation must be known before verification 22c181: Formal Methods in Software Engineering p.18

46 Java vs. Java Card Java features that are not present in Java Card Threads unrestricted concurrency Floating point arithmetic IEEE standard 754 is huge... Dynamic class loading Implementation must be known before verification Graphical/buffered I/O formal specification Swing classes? 22c181: Formal Methods in Software Engineering p.18

47 Java vs. Java Card Java features that are not present in Java Card Threads unrestricted concurrency Floating point arithmetic IEEE standard 754 is huge... Dynamic class loading Implementation must be known before verification Graphical/buffered I/O formal specification Swing classes? 22c181: Formal Methods in Software Engineering p.18

From OCL to Propositional and First-order Logic: Part I

From OCL to Propositional and First-order Logic: Part I 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 From OCL to Propositional and First-order Logic: Part I Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally

More information

The KeY System 1.0 (Deduction Component)

The KeY System 1.0 (Deduction Component) The KeY System 1.0 (Deduction Component) Bernhard Beckert, Martin Giese, Reiner Hähnle, Vladimir Klebanov, Philipp Rümmer, Steffen Schlager, and Peter H. Schmitt www.key-project.org Abstract. The KeY system

More information

From OCL to Typed First-order Logic

From OCL to Typed First-order Logic 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 From OCL to Typed First-order Logic Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner

More information

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool The KeY Tool developed by: W. Ahrendt, T. Baar, B. Beckert, R. Bubel, M. Giese, R. Hähnle, W. Menzel, W. Mostowski, A. Roth, S. Schlager, P.H. Schmitt, and others Information Security, ETH Zürich, Switzerland

More information

The University of Iowa. 22c181: Formal Methods in Software Engineering. Spring Course Overview

The University of Iowa. 22c181: Formal Methods in Software Engineering. Spring Course Overview The University of Iowa 22c181: Formal Methods in Software Engineering Spring 2011 Course Overview Copyright 2010-11 Cesare Tinelli. These notes are copyrighted materials and may not be used in other course

More information

Typed First-order Logic

Typed First-order Logic 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Typed First-order Logic Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner Hähnle

More information

Verifying Object-Oriented Programs with KeY: A Tutorial

Verifying Object-Oriented Programs with KeY: A Tutorial Verifying Object-Oriented Programs with KeY: A Tutorial Wolfgang Ahrendt 1, Bernhard Beckert 2, Reiner Hähnle 1, Philipp Rümmer 1, and Peter H. Schmitt 3 1 Department of Computer Science and Engineering,

More information

Verifying Java Programs Verifying Java Programs with KeY

Verifying Java Programs Verifying Java Programs with KeY Verifying Java Programs Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at

More information

JML tool-supported specification for Java Erik Poll Radboud University Nijmegen

JML tool-supported specification for Java Erik Poll Radboud University Nijmegen JML tool-supported specification for Java Erik Poll Radboud University Nijmegen Erik Poll - JML p.1/41 Overview The specification language JML Tools for JML, in particular runtime assertion checking using

More information

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

Towards Combined Static and Runtime Verification of Distributed Software

Towards Combined Static and Runtime Verification of Distributed Software Towards Combined Static and Runtime Verification of Distributed Software Wolfgang Ahrendt Chalmers University of Technology, Gothenburg, Sweden Seminar on Distributed Runtime Verification Bertinoro, 18

More information

Formal Specification and Verification

Formal Specification and Verification Formal Specification and Verification Proof Obligations Bernhard Beckert Based on a lecture by Wolfgang Ahrendt and Reiner Hähnle at Chalmers University, Göteborg Formal Specification and Verification:

More information

Verifying Java Programs Verifying Java Programs with KeY

Verifying Java Programs Verifying Java Programs with KeY Verifying Java Programs Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at

More information

Verifying Java Programs with KeY

Verifying Java Programs with KeY Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang

More information

KeY Quicktour. 1 Introduction/Prerequisites Version Information Logical Foundations The KeY-Prover... 2

KeY Quicktour. 1 Introduction/Prerequisites Version Information Logical Foundations The KeY-Prover... 2 KeY Quicktour Thomas Baar University of Karlsruhe Dept. of Computer Science D-76128 Karlsruhe baar@ira.uka.de Reiner Hähnle Chalmers University of Technology Dept. of Computing Science S-41296 Gothenburg

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering Reasoning about Programs - Selected Features Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel,

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering Reasoning about Programs with Dynamic Logic - Part I Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard

More information

Handling Integer Arithmetic in the Verification of Java Programs

Handling Integer Arithmetic in the Verification of Java Programs Handling Integer Arithmetic in the Verification of Java Programs Steffen Schlager 1st Swedish-German KeY Workshop Göteborg, Sweden, June 2002 KeY workshop, June 2002 p.1 Introduction UML/OCL specification

More information

A Short Introduction to First-Order Theorem Proving with KeY

A Short Introduction to First-Order Theorem Proving with KeY 1 What is KeY? 1.1 Software Verification Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt Mattias Ulbrich A Short Introduction to First-Order Theorem

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

Formal Verification. Lecture 10

Formal Verification. Lecture 10 Formal Verification Lecture 10 Formal Verification Formal verification relies on Descriptions of the properties or requirements of interest Descriptions of systems to be analyzed, and rely on underlying

More information

Java Modelling Language (JML) References

Java Modelling Language (JML) References Java Modelling Language (JML) References G. T. Leavens and Y. Cheon. Design by Contract with JML, August 2005. L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll.

More information

Verifying Safety Property of Lustre Programs: Temporal Induction

Verifying Safety Property of Lustre Programs: Temporal Induction 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Verifying Safety Property of Lustre Programs: Temporal Induction Copyright 2008 Cesare Tinelli. These notes are copyrighted

More information

Towards a GUI for Program Verification with KeY. Master of Science Thesis in the Programme Software Engineering and Technology

Towards a GUI for Program Verification with KeY. Master of Science Thesis in the Programme Software Engineering and Technology Towards a GUI for Program Verification with KeY Master of Science Thesis in the Programme Software Engineering and Technology Chalmers University of Technology University of Gothenburg Department of Computer

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering Reasoning about Programs with Dynamic Logic - Part II Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard

More information

Proof Carrying Code(PCC)

Proof Carrying Code(PCC) Discussion p./6 Proof Carrying Code(PCC Languaged based security policy instead of OS-based A mechanism to determine with certainity that it is safe execute a program or not Generic architecture for providing

More information

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214 Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering Reasoning about Programs with Dynamic Logic - Part II Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard

More information

Chapter 1 Quo Vadis Formal Verification?

Chapter 1 Quo Vadis Formal Verification? Chapter 1 Quo Vadis Formal Verification? Reiner Hähnle The KeY system has been developed for over a decade. During this time, the field of Formal Methods as well as Computer Science in general has changed

More information

Part II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?

Part II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs? Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare

More information

Specification and Analysis of Contracts Tutorial

Specification and Analysis of Contracts Tutorial Specification and Analysis of Contracts Tutorial Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo Gerardo Schneider (UiO) Specification and

More information

The rcos Modeler. ICTAC Summer School 2013 ECNU, Shanghai, China. Volker Stolz, Zhiming Liu. Friday, August 30, 13

The rcos Modeler. ICTAC Summer School 2013 ECNU, Shanghai, China. Volker Stolz, Zhiming Liu. Friday, August 30, 13 The rcos Modeler ICTAC Summer School 2013 ECNU, Shanghai, China Volker Stolz, Zhiming Liu Benefits of Modeling Given the right models, we get for free: executable program user interfaces test cases (model-based

More information

Program Verification (6EC version only)

Program Verification (6EC version only) Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language

More information

Specifying JAVACARD API in OCL

Specifying JAVACARD API in OCL Specifying JAVACARD API in OCL Daniel Larsson 1 Wojciech Mostowski 2 Computing Science Department Chalmers University of Technology Göteborg, Sweden Abstract We discuss the development of an OCL specification

More information

22c:181 / 55:181 Formal Methods in Software Engineering

22c:181 / 55:181 Formal Methods in Software Engineering 22c:181 / 55:181 Formal Methods in Software Engineering Design by Contract Copyright 2001-11, Matt Dwyer, John Hatcliff, Rod Howell, and Cesare Tinelli. Produced by Cesare Tinelli at the University of

More information

Advances in Programming Languages

Advances in Programming Languages O T Y H Advances in Programming Languages APL8: ESC/Java2 David Aspinall (including slides by Ian Stark and material adapted from ESC/Java2 tutorial by David Cok, Joe Kiniry and Erik Poll) School of Informatics

More information

The University of Iowa Fall CS:5810 Formal Methods in Software Engineering. Introduction

The University of Iowa Fall CS:5810 Formal Methods in Software Engineering. Introduction The University of Iowa Fall 2017 CS:5810 Formal Methods in Software Engineering Introduction Copyright 2017, Cesare Tinelli, Pierre-Loïc Garoche, Reiner Hänle, Steven Miller These notes are copyrighted

More information

Specification of a transacted memory for smart cards in Java and JML

Specification of a transacted memory for smart cards in Java and JML Specification of a transacted memory for smart cards in Java and JML Erik Poll University of Nijmegen, NL Pieter Hartel Eduard de Jong Joint work with University of Twente Sun Microsystems Transacted Memory

More information

Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen

Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial p.1/30

More information

A Pratical Application of the Object Constraint Language OCL

A Pratical Application of the Object Constraint Language OCL A Pratical Application of the Object Constraint Language OCL Kjetil Måge Agder University College E-mail: kmage01@siving.hia.no Abstract. The Unified Modeling Language, UML, has for several years been

More information

Lecture 11 Lecture 11 Nov 5, 2014

Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification/Methods Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems to be analyzed, and

More information

Software Engineering using Formal Methods

Software Engineering using Formal Methods Software Engineering using Formal Methods Reasoning about Programs with Dynamic Logic Wolfgang Ahrendt & Richard Bubel & Wojciech Mostowski 5 October 2011 SEFM: Java DL /GU 111005 1 / 45 Dynamic Logic

More information

Advances in Programming Languages

Advances in Programming Languages Advances in Programming Languages Lecture 12: Practical Tools for Java Correctness Ian Stark School of Informatics The University of Edinburgh Friday 31 November 2014 Semester 1 Week 7 http://www.inf.ed.ac.uk/teaching/courses/apl

More information

A Solution Based on Modeling and Code Generation for Embedded Control System

A Solution Based on Modeling and Code Generation for Embedded Control System J. Software Engineering & Applications, 2009, 2: 160-164 doi:10.4236/jsea.2009.23023 Published Online October 2009 (http://www.scirp.org/journal/jsea) A Solution Based on Modeling and Code Generation for

More information

KeY Quicktour for JML

KeY Quicktour for JML KeY Quicktour for JML Christian Engel and Andreas Roth 1 Introduction/Prerequisites This document constitutes a tutorial introduction to the KeY-Tool using the JML interface, called JMLKeY in the sequel.

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Front-end Technologies for Formal-Methods Tools

Front-end Technologies for Formal-Methods Tools Front-end Technologies for Formal-Methods Tools Makarius Wenzel Univ. Paris-Sud, Laboratoire LRI November 2013 Abstract Looking at the past decades of interactive (and automated) theorem proving, and tools

More information

Advances in Programming Languages

Advances in Programming Languages T O Y H Advances in Programming Languages APL4: JML The Java Modeling Language David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Thursday 21 January 2010

More information

Verifying Java Programs. Verifying Java Programs. The Krakatoa/Why Tool Suite

Verifying Java Programs. Verifying Java Programs. The Krakatoa/Why Tool Suite Verifying Java Programs Verifying Java Programs Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at

More information

Verifying Java Programs

Verifying Java Programs Verifying Java Programs Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at

More information

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson OCL parsing / type checking in the context of GF and KeY Kristofer Johannisson 1 I. Introduction 2 Typechecking? context OwnerPIN inv: maxpinsize > 0 and maxtries > 0 and triesremaining >= 0 and triesremaining

More information

Static analysis and testing of executable DSL specification

Static analysis and testing of executable DSL specification Static analysis and testing of executable DSL specification Qinan Lai 1, Andy Carpenter 1 1 School of Computer Science, the University of Manchester, Manchester, UK {laiq,afc}@cs.man.ac.uk Keywords: Abstract:

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

15-819M: Data, Code, Decisions

15-819M: Data, Code, Decisions 15-819M: Data, Code, Decisions 08: First-Order Logic André Platzer aplatzer@cs.cmu.edu Carnegie Mellon University, Pittsburgh, PA André Platzer (CMU) 15-819M/08: Data, Code, Decisions 1 / 40 Outline 1

More information

22c:111 Programming Language Concepts. Fall Syntax III

22c:111 Programming Language Concepts. Fall Syntax III 22c:111 Programming Language Concepts Fall 2008 Syntax III Copyright 2007-08, The McGraw-Hill Company and Cesare Tinelli. These notes were originally developed by Allen Tucker, Robert Noonan and modified

More information

FreePascal changes: user documentation

FreePascal changes: user documentation FreePascal changes: user documentation Table of Contents Jochem Berndsen February 2007 1Introduction...1 2Accepted syntax...2 Declarations...2 Statements...3 Class invariants...3 3Semantics...3 Definitions,

More information

CSC Advanced Object Oriented Programming, Spring Specification

CSC Advanced Object Oriented Programming, Spring Specification CSC 520 - Advanced Object Oriented Programming, Spring 2018 Specification Specification A specification is an unambiguous description of the way the components of the software system should be used and

More information

From Hoare Logic to Matching Logic Reachability. Grigore Rosu and Andrei Stefanescu University of Illinois, USA

From Hoare Logic to Matching Logic Reachability. Grigore Rosu and Andrei Stefanescu University of Illinois, USA From Hoare Logic to Matching Logic Reachability Grigore Rosu and Andrei Stefanescu University of Illinois, USA Matching Logic Reachability - Goal - Language independent program verification framework Derives

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler

More information

A Formalism for Automated Verification of Model Transformations

A Formalism for Automated Verification of Model Transformations Magyar Kutatók 10. Nemzetközi Szimpóziuma 10 th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics A Formalism for Automated Verification of Model Transformations

More information

Reasoning About Loops Using Vampire

Reasoning About Loops Using Vampire EPiC Series in Computing Volume 38, 2016, Pages 52 62 Proceedings of the 1st and 2nd Vampire Workshops Reasoning About Loops Using Vampire Laura Kovács and Simon Robillard Chalmers University of Technology,

More information

ESC/Java 2. Checker for Java 2. Extended. Static. B y K ats man Andrey S oftware E ngineering S em inar

ESC/Java 2. Checker for Java 2. Extended. Static. B y K ats man Andrey S oftware E ngineering S em inar ESC/Java 2 Extended Static Checker for Java 2 B y K ats man Andrey S oftware E ngineering S em inar 2 0 0 8 Background ESC/Java - Original development by Compaq Systems Research Center (1997) as a successor

More information

Advances in Programming Languages

Advances in Programming Languages T O Y H Advances in Programming Languages APL14: Practical tools for Java Correctness David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Friday 12 November

More information

Testing, Debugging, Program Verification

Testing, Debugging, Program Verification Testing, Debugging, Program Verification Automated Test Case Generation, Part II Wolfgang Ahrendt & Vladimir Klebanov & Moa Johansson 12 December 2012 TDV: ATCG II /GU 2011-12-12 1 / 17 Recap Specification-/Model-Based

More information

In Our Last Exciting Episode

In Our Last Exciting Episode In Our Last Exciting Episode #1 Lessons From Model Checking To find bugs, we need specifications What are some good specifications? To convert a program into a model, we need predicates/invariants and

More information

Transforming UML Collaborating Statecharts for Verification and Simulation

Transforming UML Collaborating Statecharts for Verification and Simulation Transforming UML Collaborating Statecharts for Verification and Simulation Patrick O. Bobbie, Yiming Ji, and Lusheng Liang School of Computing and Software Engineering Southern Polytechnic State University

More information

An Approach to the Generation of High-Assurance Java Card Applets

An Approach to the Generation of High-Assurance Java Card Applets An Approach to the Generation of High-Assurance Java Card Applets Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master-Seminar Software Verification Author: Lukas Erlacher Advisor: Prof. Andrey Rybalchenko, Dr. Corneliu Popeea Submission: April, 2013 Contents

More information

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary Meta-models and Grammars Prof. Andreas Prinz Introduction, Compilers Modelling & Meta-modelling Examples Meta-models vs. Grammars Summary Compilers Graphical Editor Parser Text editor Static checks (OCL)

More information

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science) Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 4: Mutations, OCL etc. Course Outline L1:

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

K and Matching Logic

K and Matching Logic K and Matching Logic Grigore Rosu University of Illinois at Urbana-Champaign Joint work with the FSL group at UIUC (USA) and the FMSE group at UAIC (Romania) Question could it be that, after 40 years of

More information

Teaching and Training Formal Methods for Safety Critical Systems

Teaching and Training Formal Methods for Safety Critical Systems Teaching and Training Formal Methods for Safety Critical Systems Michael Lipaczewski and Frank Ortmeier Computer Systems in Engineering Otto-von-Guericke University Magdeburg {michael.lipaczewski,frank.ortmeier}@ovgu.de

More information

SIMULATION : TRANSACTIONS OF THE MODELING AND SIMULATION SOCIETY, VOL. XX, NO. Y, MONTH

SIMULATION : TRANSACTIONS OF THE MODELING AND SIMULATION SOCIETY, VOL. XX, NO. Y, MONTH SIMULATION : TRANSACTIONS OF THE MODELING AND SIMULATION SOCIETY, VOL. XX, NO. Y, MONTH 2009 1 1 SIMULATION : TRANSACTIONS OF THE MODELING AND SIMULATION SOCIETY, VOL. XX, NO. Y, MONTH 2009 2 Towards Domain-specific

More information

Proofs and Proof Certification in the TLA + Proof System

Proofs and Proof Certification in the TLA + Proof System Proofs and Proof Certification in the TLA + Proof System Stephan Merz Inria Nancy Grand-Est & LORIA, Villers-lès-Nancy, France Abstract TLA + is a specification language originally designed for specifying

More information

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24, PragmaDev change request Emmanuel Gaudin emmanuel.gaudin@pragmadev.com Languages Table of contents PragmaDev introduction Languages SDL-RT Tool support Market tendancy Change requests Presentation PragmaDev

More information

Improving the Definition of UML

Improving the Definition of UML Improving the Definition of UML Greg O Keefe Computer Sciences Laboratory Australian National University Outline The UML definition claims to be Outline The UML definition claims to be precise Outline

More information

Self-Controlling Architecture Structured Agents

Self-Controlling Architecture Structured Agents Self-Controlling Architecture Structured Agents Mieczyslaw M. Kokar (contact author) Department of Electrical and Computer Engineering 360 Huntington Avenue, Boston, MA 02115 ph: (617) 373-4849, fax: (617)

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

A Logic of Proofs for Differential Dynamic Logic

A Logic of Proofs for Differential Dynamic Logic 1 A Logic of Proofs for Differential Dynamic Logic Toward Independently Checkable Proof Certificates for Differential Dynamic Logic Nathan Fulton Andrè Platzer Carnegie Mellon University CPP 16 February

More information

Outline. Introduction SDV Motivation Model vs Real Implementation SLIC SDVRP SLAM-2 Comparisons Conclusions

Outline. Introduction SDV Motivation Model vs Real Implementation SLIC SDVRP SLAM-2 Comparisons Conclusions Outline Introduction SDV Motivation Model vs Real Implementation SIC SDVRP SAM-2 Comparisons Conclusions SDV Research Platform Academic release of SDV (Static Driver Verifier), based on the code that ships

More information

Lectures 20, 21: Axiomatic Semantics

Lectures 20, 21: Axiomatic Semantics Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics

More information

Formally Certified Satisfiability Solving

Formally Certified Satisfiability Solving SAT/SMT Proof Checking Verifying SAT Solver Code Future Work Computer Science, The University of Iowa, USA April 23, 2012 Seoul National University SAT/SMT Proof Checking Verifying SAT Solver Code Future

More information

Overview of SRI s. Lee Pike. June 3, 2005 Overview of SRI s. Symbolic Analysis Laboratory (SAL) Lee Pike

Overview of SRI s. Lee Pike. June 3, 2005 Overview of SRI s. Symbolic Analysis Laboratory (SAL) Lee Pike June 3, 2005 lee.s.pike@nasa.gov Model-Checking 101 Model-checking is a way automatically to verify hardware or software. For a property P, A Model-checking program checks to ensure that every state on

More information

Java Bytecode Specification and Verification

Java Bytecode Specification and Verification Java Bytecode Specification and Verification Lilian Burdy INRIA Sophia-Antipolis 2004, Route des Lucioles, BP 93, 06902 Sophia-Antipolis, France Lilian.Burdy@sophia.inria.fr Mariela Pavlova INRIA Sophia-Antipolis

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 1: Introduction Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg October 26, 2011 Jochen Hoenicke (Software Engineering) Formal Methods for Java October

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Reading part: Design-Space Exploration with Alloy

Reading part: Design-Space Exploration with Alloy Reading part: Design-Space Exploration with Alloy Ing. Ken Vanherpen Abstract In the growing world of MDE many tools are offered to describe a (part of a) system, constrain it, and check some properties

More information

Chapter 3 (part 3) Describing Syntax and Semantics

Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings

More information

Research Paper on Implementation of OCL Constraints in JAVA

Research Paper on Implementation of OCL Constraints in JAVA ISSN No. 0976-5697 Volume 8, No. 5, May June 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at www.ijarcs.info Research Paper on Implementation of OCL

More information

Runtime Checking for Program Verification Systems

Runtime Checking for Program Verification Systems Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification

More information

What if current foundations of mathematics are inconsistent? Vladimir Voevodsky September 25, 2010

What if current foundations of mathematics are inconsistent? Vladimir Voevodsky September 25, 2010 What if current foundations of mathematics are inconsistent? Vladimir Voevodsky September 25, 2010 1 Goedel s second incompleteness theorem Theorem (Goedel) It is impossible to prove the consistency of

More information

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

Model-Driven QoS Provisioning Techniques for CCM DRE Systems Model-Driven QoS Provisioning Techniques for CCM DRE Systems Stoyan Paunov, Gan Deng, Douglas C. Schmidt, and Anirudha Gokhale ISIS, Vanderbilt University Motivation for QoS-enabled Middleware Trends!

More information

Verification and Validation

Verification and Validation Cycle Ingénieur 2 ème année Département Informatique Verification and Validation Part IV : Proof-based Verification (I) Burkhart Wolff Département Informatique Université Paris-Sud / Orsay 2013-2014 What

More information

Verification and Validation

Verification and Validation 2017-2018 Cycle Ingénieur 2 ème année Département Informatique Verification and Validation Part IV : Proof-based Verification (I) Burkhart Wolff Département Informatique Université Paris-Sud / Orsay Difference

More information

Compilers. Lecture 2 Overview. (original slides by Sam

Compilers. Lecture 2 Overview. (original slides by Sam Compilers Lecture 2 Overview Yannis Smaragdakis, U. Athens Yannis Smaragdakis, U. Athens (original slides by Sam Guyer@Tufts) Last time The compilation problem Source language High-level abstractions Easy

More information

Logik für Informatiker Logic for computer scientists

Logik für Informatiker Logic for computer scientists Logik für Informatiker for computer scientists WiSe 2011/12 Overview Motivation Why is logic needed in computer science? The LPL book and software Scheinkriterien Why is logic needed in computer science?

More information