Course on Program Verification 2017/2018

Slides:



Advertisements
Similar presentations
ICE1341 Programming Languages Spring 2005 Lecture #6 Lecture #6 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Advertisements

Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Principles of programming languages 1: Introduction (with a simple language) Isao Sasano Department of Information Science and Engineering.
Compiler Construction by Muhammad Bilal Zafar (AP)
VIDE als voortzetting van Cocktail SET Seminar 11 september 2008 Dr. ir. Michael Franssen.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Teaching MC to Undergrads. Abhik Roychoudhury National University of Singapore.
URL: by Wishnu Prasetya Course on Program Verification 2014/2015.
Introduction to Computer Programming in C
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
1 Static Analysis Methods CSSE 376 Software Quality Assurance Rose-Hulman Institute of Technology March 20, 2007.
ABET The Complete Report on Your Course. ABET OUTCOME CHECKLIST.
Towards a HOL Framework for the Deductive Analysis of Hybrid Control Systems ADPM’2000 Norbert Völker University of Essex, England.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
Describing Syntax and Semantics
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Course Organization Course Software Testing & Verification 2014/15 Wishnu Prasetya.
Data Structures and Programming.  John Edgar2.
Computer Science Education in Japan Bush, M. E. (2004). Computer science education in Japan. CACM, 47(8),
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Computer Science 2211b Software Tools and Systems Programming.
COEN 7501 Grading Scheme ► Exam: 40% ► Project: 60%
Invariant Based Programming in Education Tutorial, FM’08 Linda Mannila
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Computer-Aided Verification 計算機輔助驗證 (Spring 2006) 熊博安 國立中正大學資訊工程研究所
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
University of Paderborn Software Engineering Group Prof. Dr. Wilhelm Schäfer Towards Verified Model Transformations Holger Giese 1, Sabine Glesner 2, Johannes.
COEN 7501 Grading Scheme ► 2 Tests: 60% ► Project: 40%
Safety-Critical Systems 5 Testing and V&V T
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
CS Welcome to CS 5383, Topics in Software Assurance, Toward Zero-defect Programming Spring 2007.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
The Software Development Process
Verification & Validation By: Amir Masoud Gharehbaghi
Model Checking for Simple Java Programs Taehoon Lee, Gihwon Kwon Department of Computer Science Kyonggi University, Korea IWFST, Shanghai, China,
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Fundamentals of Software Engineering. Instructor: Dr. Kal Bugrara Office: Snell Engineering, Rm 267 Office Hours: Sat: 12:00-2:00 pm Phone
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Formal Methods: for All or for Chosen? Victor Kuliamin 1 Vitaliy Omelchenko 1 Olga Petrenko 2 1 Institute for System Programming 2 Institute of Open Education.
URL: by Wishnu Prasetya Course on Program Verification 2015/2016.
Thoughts on the Future of ATP Wilfred J. Legato NSA.
ACC 340 Academic professor/tutorialrank For more course Tutorials
CIS 505: Programming- Language Paradigms Torben Amtoft Xinming (Simon) Ou Aug 23, 2010.
Hybrid Type Checking An implementation of λ H David Waern Rickard Nilsson.
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
Welcome to CS 4390/CS5381: Introduction to Formal Methods
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Course Software Testing & Verification 2016/17 Wishnu Prasetya
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Introduction: course outline
Relatively Complete Refinement Type System for Verification of Higher-Order Non-deterministic Programs Hiroshi Unno (University of Tsukuba) Yuki Satake.
IS 2935: Developing Secure Systems
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
CS 1111 Introduction to Programming Fall 2018
Course Software Testing & Verification 2017/18 Wishnu Prasetya
AP Microeconomics Course Requirements.
Logic: tool-based modeling and reasoning
Computer-Aided Verification 計算機輔助驗證 (Spring 2004)
Computer-Aided Verification 計算機輔助驗證
Programming Languages and Compilers (CS 421)
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
About the Course Software Testing & Verification
CHARIOT-VESSEDIA Workshop 9 May 2019, Dublin, Ireland
Presentation transcript:

Course on Program Verification 2017/2018 URL: www.cs.uu.nl/docs/vakken/pv by Wishnu Prasetya (S.W.B.Prasetya@uu.nl) §

Learning goals Become familiar with, and acquire insight on the underlying concepts of: program semantics: operational, denotational, axiomatic formalisms to express the correctness of programs: a Hoare-style formalism, LTL, CTL, higher order logic, CSP automated verification techniques: predicate transformer, automated testing, LTL model checking, CTL model checking, symbolic mc, tactic-based theorem proving, CSP refinement checking.

Learning goals Acquire hands-on experience with (towards your future research) : implementing a verification technique (one of previously mentioned). embedding a simple programming language in a higher order theorem prover, and to use it to prove the correctness of some example programs. using a verification tool to model a problem and conduct a verification of its solution.

Evaluation Assignments (4) + project (1) Exams : 2x Grading: All are mandatory You can work in a team, up to size 3. Exams : 2x Grading: Assignments, A = 5% H1 + 5% H2 + 10% H3 + 0% Spin-tutorial P = 25% Project Exams, E = 27.5% E1+ 27.5% E2, average should be ≧ 4.0 Your raw grade = A+P+E rounded to the closest 0.5 pt, but: if average(E1,E2) < 4 then raw is capped at 5 Your final grade = conform the Faculty’s Education & Examination Regulation (EER)

Evaluation Supplementary exam, Note the Faculty’s regulation concerning this. A1 : semantics A2 : SPIN A3 : tutorial HOL A4 : embedding HOL

Coverage H1 H2 H3 ST P E1 E2 Program semantic ✔ Pred. transformer LTL + model checking CTL + model checking Symbolic model checking higher order logic (HOL) Modelling & proving in HOL Experience with verification tool Can implement a verification technique CSP + refinement checking (may change if the actual progress during the course requires us to adapt)

Software You need to bring your own laptop. Needed software: HOL, Spin. Install them ASAP!! Theorem prover HOL, also requires Moscow ML (Mosml), ML is a functional language Model checker SPIN, also requires C compiler + its standard libraries. On Windows you probably also need Cygwin or Msys+Mingw to get the C compiler. Tk/Tcl for its GUI Dot for drawing state automata Links to HOL & Spin sites can be found in PV website. Consult their install instructions.

Other notes www.cs.uu.nl/docs/vakken/pv Regularly check it out…