8,217 Hits in 4.1 sec

A Survey on Network Verification and Testing with Formal Methods: Approaches and Challenges

Yahui Li, Xia Yin, Zhiliang Wang, Jiangyuan Yao, Xingang Shi, Jianping Wu, Han Zhang, Qing Wang
2018 IEEE Communications Surveys and Tutorials  
As an area of current interest, it is an interdisciplinary subject (with fields including formal methods, mathematical logic, programming languages, and networks), making it daunting for a nonprofessional  ...  We perform a comprehensive survey on well-developed methodologies and tools for data plane verification, control plane verification, data plane testing and control plane testing.  ...  A key component to networks is switches.  ... 
doi:10.1109/comst.2018.2868050 fatcat:h3op4heca5d75bpokfsbfevnwe

Verifying Object-Oriented Programs with KeY: A Tutorial [chapter]

Wolfgang Ahrendt, Bernhard Beckert, Reiner Hähnle, Philipp Rümmer, Peter H. Schmitt
2007 Lecture Notes in Computer Science  
This paper is a tutorial on performing formal specification and semi-automatic verification of Java programs with the formal software development tool KeY.  ...  The Eclipse and Together KeY plugins allow to select Java classes or methods that are annotated with formal specifications and both plugins offer to prove a number of correctness judgements such as behavioural  ...  Acknowledgements We would like to thank Richard Bubel for many discussions on various topics of the paper, and for his enormous contribution to the constant improvement of the KeY system.  ... 
doi:10.1007/978-3-540-74792-5_4 fatcat:gyp7wdqljbd5fac7uru62fc3qm

Refinement Types: A Tutorial

Ranjit Jhala, Niki Vazou
2021 Foundations and Trends® in Programming Languages  
In this article, we distill the ideas developed in the substantial literature on refinement types into a unified tutorial that explains the key ingredients of modern refinement type systems.  ...  Goals & Outline Refinement types can be the vector that brings formal verification into mainstream software development.  ... 
doi:10.1561/2500000032 fatcat:7my2az6fqzhpjbb6oehwwubvwa

Model Checking: A Tutorial Overview [chapter]

Stephan Merz
2001 Lecture Notes in Computer Science  
The paper ends with a list of references to some more advanced topics.  ...  The use of model checking is exemplified by an analysis of the Needham-Schroeder public key protocol. We then formally define transition systems, temporal logic, ω-automata, and their relationship.  ...  ., [106] for work on the formal verification of cryptographic protocols using interactive theorem proving).  ... 
doi:10.1007/3-540-45510-8_1 fatcat:aiidawo4hrfp7lffxax5vxol2i

The GPUVerify Method: a Tutorial Overview

Alastair Donaldson
2014 Electronic Communications of the EASST  
I present a tutorial overview demonstrating the key technique used by GPUVerify, a static verification tool for graphics processing unit (GPU) kernels.  ...  The technique is a method for translating a massively parallel GPU kernel into a sequential program such that correctness of the sequential program implies data race-freedom of the parallel kernel.  ...  After providing some background on GPU programming (Section 2), the bulk of the tutorial focuses on the key steps involved in the GPUVerify verification method (Section 3).  ... 
doi:10.14279/tuj.eceasst.70.986 dblp:journals/eceasst/Donaldson14 fatcat:zm6764lvpbeojfwsik27k72yse

VeriFast for Java: A Tutorial [chapter]

Jan Smans, Bart Jacobs, Frank Piessens
2013 Lecture Notes in Computer Science  
VeriFast is a separation logic-based program verifier for Java. This tutorial introduces the verifier's features step by step. D. Clarke et al.  ...  in Object-Oriented Programming, LNCS 7850, pp. 407-442, 2013. c Springer-Verlag Berlin Heidelberg 2013 1 Separation logic is an extension of Hoare logic oriented to reasoning about imperative programs with  ...  This tutorial is targeted at users of VeriFast. We refer the reader to a technical report [4] for a formal description of the inner workings of the tool for a small imperative language.  ... 
doi:10.1007/978-3-642-36946-9_14 fatcat:mvn3c6y5nrgczkl5mowqnlvsnu

A Tutorial on Uppaal [chapter]

Gerd Behrmann, Alexandre David, Kim G. Larsen
2004 Lecture Notes in Computer Science  
This is a tutorial paper on the tool Uppaal.  ...  Assignment An assignment label is a comma separated list of expressions with a side-effect; expressions must only refer to clocks, integer variables, and constants and only assign integer values to clocks  ...  Structure Committed locations are the key to achieving atomicity.  ... 
doi:10.1007/978-3-540-30080-9_7 fatcat:bdvsewm7ubhw3jw4xno5lefjea

Combining type-checking with model-checking for system verification

Zhiqiang Ren, Hongwei Xi
2016 2016 ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE)  
In essence, we trade the formality of verification for the efficiency of development.  ...  ATS is a statically typed programming language that unifies implementation with formal specification.  ... 
doi:10.1109/memcod.2016.7797745 dblp:conf/memocode/RenX16 fatcat:2hjce2siibgtnct2ddl7xvydke

Metastability and Synchronizers: A Tutorial

R. Ginosar
2011 IEEE Design & Test of Computers  
This tutorial provides a glimpse into the theory and practice of this fascinating subject.  ...  Assuming that we have selected a good synchronizer, we can facilitate logic verification by replacing the synchronizer with a special synchronous delay block that inserts a delay of either k or k þ 1 cycles  ... 
doi:10.1109/mdt.2011.113 fatcat:2crqzjn4tnh2xo7pjn2usdkl3i

On-line monitoring: a tutorial

B.A. Schroeder
1995 Computer  
.* Correctness checking is the monitoring of an application to ensure consistencywith a formal specification. It can be used to detect runtime errors or as a verification technique.  ...  Computer --lthough monitoring has been around since the early 1960s with the advent of debuggers, the field has recently made some excit-A ing advances.  ...  .* Correctness checking is the monitoring of an application to ensure consistencywith a formal specification. It can be used to detect runtime errors or as a verification technique.  ... 
doi:10.1109/2.386988 fatcat:c22e7hnwrff7tfjr7a5lyugrcm

A FEniCS tutorial [chapter]

Hans Petter Langtangen
2012 Lecture Notes in Computational Science and Engineering  
Professor Douglas Arnold is thanked for valuable feedback on this tutorial.  ...  Miscellaneous Topics Glossary Below we explain some key terms used in this tutorial. FEniCS: name of a software suite composed of many individual software components (see  ...  this tutorial.  ... 
doi:10.1007/978-3-642-23099-8_1 fatcat:l6fyc7z2nbgrtbsdtlnjc2svle

A tutorial on simulation conceptual modeling

Stewart Robinson
2017 2017 Winter Simulation Conference (WSC)  
The tutorial concludes with a discussion on the level of abstraction.  ...  In this tutorial we explore the definition, requirements and approach to conceptual modeling. First we ask 'where is the model?'  ...  Figure 2 shows the key artefacts of conceptual modeling.  ... 
doi:10.1109/wsc.2017.8247815 dblp:conf/wsc/Robinson17 fatcat:yrmplhrb2rgflkgmhzgxpvhole

A Tutorial on Interactive Markov Chains [chapter]

Florian Arnold, Daniel Gebler, Dennis Guck, Hassan Hatefi
2014 Lecture Notes in Computer Science  
IMCs enable a wide range of modelling and analysis techniques and serve as a semantic model for many industrial and scientific formalisms, such as AADL, GSPNs and many more.  ...  If we choose β in s 0 , then the successor state is s 3 , which is a Markovian state with transition s 3 3 s 4 with rate λ = 3.  ...  In the following, we will demonstrate how IMCs provide a precise formal semantics and enable compositional design and verification by examples about the industrial specification formalisms of dynamic fault  ... 
doi:10.1007/978-3-662-45489-3_2 fatcat:5jgaxgju6vf6tispdroja4l2p4

A Tutorial on Using Dafny to Construct Verified Software

Paqui Lucio
2017 Electronic Proceedings in Theoretical Computer Science  
This paper is a tutorial for newcomers to the field of automated verification tools, though we assume the reader to be relatively familiar with Hoare-style verification.  ...  Our main aim is to encourage the software engineering community to make the move towards using formal verification tools.  ...  There are many verification tools that can be used in today's software development practices, such as Why3 [11] and KeY [6] . For a large, although incomplete, list of tools we refer to [5] .  ... 
doi:10.4204/eptcs.237.1 fatcat:mby7tke3w5fvrjborrpgdz5rby

Automatic verification of Dafny programs with traits

Reza Ahmadi, K. Rustan M. Leino, Jyrki Nummenmaa
2015 Proceedings of the 17th Workshop on Formal Techniques for Java-like Programs - FTfJP '15  
This paper describes the design of traits, abstract superclasses, in the verification-aware programming language Dafny.  ...  The design incorporates behavioral specifications for a trait's methods and functions, just like for classes in Dafny. The design has been implemented in the Dafny tool.  ...  Acknowledgments We are grateful to the expert reviewers for their careful readings and good suggestions, and to Nadia Polikarpova for help with examples in AutoProof.  ... 
doi:10.1145/2786536.2786542 dblp:conf/ecoop/AhmadiLN15 fatcat:6wwsmog6ajfwdpxctnjnxi2fye
« Previous Showing results 1 — 15 out of 8,217 results