Formal Methods Teaching: Third International Workshop and Tutorial, FMTea 2019, Held as Part of the Third World Congress on Formal Methods, FM 2019, Porto, Portugal, October 7, 2019, Proceedings

This tutorial presents PSEUCO [1], an academic programming language designed to teach concurrent programming. The language features a heavily simplified Java-like look and feel. It supports shared-memory as well as message-passing concurrent programming primitives. The behaviour of PSEUCO programs is described by a formal semantics mapping on value-passing CCS or coloured Petri nets [2], and is made executable using compilation to Java. PSEUCO is not only a language but an interactive experience: PSEUCO.COM [1] provides access to a web application designed for first hands-on experiences with CCS and with concurrent programming patterns, supported by a rich and growing toolset. It provides an environment for students to experiment with and understand the mechanics of the fundamental building blocks of concurrency theory and concurrent programming based on a complete model of the program behaviour. PSEUCO and PSEUCO.COM constitute the centerpiece of an award-winning lecture series, mandatory for Bachelor students at Saarland Informatics Campus. Acknowledgments. This work was partially supported by the ERC Advanced Investigators Grant 695614 (POWVER) and by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – project number 389792660 – TRR 248 (see https://perspicuouscomputing.science).

[1]  Richard Bornat,et al.  Jape: A Calculator for Animating Proof-on-Paper , 1997, CADE.

[2]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[3]  Johann Schumann,et al.  Intelligent Hardware-Enabled Sensor and Software Safety and Health Management for Autonomous UAS , 2015 .

[4]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[5]  Yang Zhao,et al.  Formal Specification and Verification of a Coordination Protocol for an Automated Air Traffic Control System , 2012 .

[6]  Aarne Ranta,et al.  PESCA – A PROOF EDITOR FOR SEQUENT CALCULUS (by Aarne Ranta) , 2001 .

[7]  Antonia Huertas Ten Years of Computer-Based Tutors for Teaching Logic 2000-2010: Lessons Learned , 2011, TICTTL.

[8]  Benjamin C. Pierce Lambda, the ultimate TA: using a proof assistant to teach programming language foundations , 2009, ICFP.

[9]  Shankar Natarajan,et al.  The Formal Semantics of PVS , 1999 .

[10]  Moshe Y. Vardi,et al.  Deterministic Compilation of Temporal Safety Properties in Explicit State Model Checking , 2012, Haifa Verification Conference.

[11]  Laurent Trilling,et al.  A PVS-Based Approach for Teaching Constructing Correct Iterations , 1999, World Congress on Formal Methods.

[12]  Mauricio Ayala-Rincón,et al.  Applied Logic for Computer Scientists - Computational Deduction and Formal Proofs , 2017, Undergraduate Topics in Computer Science.

[13]  Eric W. D. Rozier,et al.  Reproducibility, correctness, and buildability: The three principles for ethical public dissemination of computer science and engineering research , 2014, 2014 IEEE International Symposium on Ethics in Science, Technology and Engineering.

[14]  João Marcos,et al.  TryLogic tutorial: an approach to Learning Logic by proving and refuting , 2015, ArXiv.

[15]  Robert L. Constable Formal Systems, Logics, and Programs , 2017 .

[16]  Maria Spichkova,et al.  "Boring Formal Methods" or "Sherlock Holmes Deduction Methods"? , 2016, STAF Workshops.

[17]  Norbert Hundeshagen,et al.  The Sequent Calculus Trainer - Helping Students to Correctly Construct Proofs , 2015, ArXiv.

[18]  Martin Strecker,et al.  Panda: A Proof Assistant in Natural Deduction for All. A Gentzen Style Proof Assistant for Undergraduate Students , 2011, TICTTL.

[19]  V. Wiels,et al.  Mastering Complexity Formal Verification of Critical Aerospace Software , 2012 .

[20]  O’Shea Using computers to learn logic : undergraduates ’ experiences , 1999 .

[21]  Moshe Y. Vardi,et al.  LTL Satisfiability Checking , 2007, SPIN.

[22]  John Rushby,et al.  A Safety-Case Approach For Certifying Adaptive Systems , 2009 .

[23]  Moshe Y. Vardi,et al.  A Multi-encoding Approach for LTL Symbolic Satisfiability Checking , 2011, FM.

[24]  John Rushby Logic and Epistemology in Safety Cases , 2013, SAFECOMP.

[25]  Kristin Yvonne Rozier,et al.  Linear Temporal Logic Symbolic Model Checking , 2011, Comput. Sci. Rev..

[26]  Panagiotis Manolios,et al.  ACL2s: "The ACL2 Sedan" , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[27]  Johann Schumann,et al.  R2U2: monitoring and diagnosis of security threats for unmanned aerial systems , 2017, Formal Methods in System Design.

[28]  Moshe Y. Vardi Branching vs. Linear Time: Final Showdown , 2001, TACAS.

[29]  Jeremy Seligman,et al.  Teaching natural deduction in the right order with Natural Deduction Planner , 2017, FLAP.

[30]  John Etchemendy,et al.  The language of first-order logic - including the Macintosh version of Tarski's world 4.0, Third Edition , 1993, CSLI lecture notes series.

[31]  Adam Chlipala,et al.  Certified Programming with Dependent Types - A Pragmatic Introduction to the Coq Proof Assistant , 2013 .