
Verified Software: Theories, Tools, Experiments
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Title Page
- Preface
- Organization
- Table of Contents
- Cyber War, Formal Verification and Certified Infrastructure
- A Certified Multi-prover Verification Condition Generator
- Introduction
- Logical Contexts
- Dependently Typed de Bruijn Indices
- Terms and Propositions
- Logical Contexts, Semantics
- The Core Programming Language
- Informal Description
- Formal Syntax of Expressions
- Operational Semantics
- Weakest Precondition Calculus
- Extraction of a Certified Verification Tool
- Concrete WP Computation
- Producing Concrete Syntax with Explicit Binders
- Extraction and Experimentation
- Conclusions, Related Works and Perspectives
- References
- Integrated Semantics of Intermediate-Language C and Macro-Assembler for Pervasive Formal Verification of Operating Systems and Hypervisors from VerisoftXT
- Introduction
- Macro-Assembler Semantics
- C Semantics
- Integrated C-IL+MASM-Semantics
- Calling Convention
- Semantics
- Pervasive Theory
- Compiler Consistency
- Results
- Future Work
- Conclusion
- References
- The Location Linking Concept: A Basis for Verification of Code Using Pointers
- Introduction
- Specification of a System of Linked Locations
- A Formal Specification
- Shared Conceptual State
- Position Type
- Operations
- Memory Management
- Performance and Extensions
- Implementation Flexibility
- Application
- Specification of a Stack Concept
- Pointer-Based Implementation of Stacks
- Verification Process
- Closely Related Work
- Summary
- References
- Verifying Implementations of Security Protocols by Refinement
- Introduction
- Background: The VCC Verifier
- Case Study: Trusted Platform Module
- Creating and Loading Objects
- Key Management as a Security Protocol
- Refinement Approach
- Refinement in VCC
- High-Level Protocol Definition (L0)
- From Term Algebra to Byte Strings (L1)
- Physical Code (L2)
- Empirical Results
- Related Work
- Conclusions
- References
- Deciding Functional Lists with Sublist Sets
- Introduction
- Examples
- Logic FLS2 of Functional Lists with Sublists Sets
- Preliminaries
- Logic FLS of Functional Lists with Sublists
- Decision Procedure for FLS
- Extension with Sets of Sublists and Content Sets
- Conclusion
- References
- Developing Verified Programs with Dafny
- References
- Verifying Two Lines of C with Why3: An Exercise in Program Verification
- Introduction
- Unobfuscation
- Overview of Why3
- Verification
- Specification
- Correctness Proof
- Discussion
- References
- Annotated Source Code
- Development and Evaluation of LAV:An SMT-Based Error Finding Platform
- Introduction
- Motivating Example
- Modelling Variables, Data Types, and Blocks
- Modelling Control Flow
- Correctness Conditions
- Transforming a Code Model into an SMT Goal
- Implementation
- Evaluation and Comparison to Related Tools
- Application in Education
- Conclusions and Further Work
- References
- A Lightweight Technique for Distributed and Incremental Program Verification
- Introduction
- The SPARK Language and Tools
- The SPARK Language
- The SPARK Tool Chain
- Verification in Practice
- Increasing Verification Throughput
- Memcached
- Integrating Memcached into the SPARK Toolchain
- Experiments
- Incremental Solving
- Distributed Solving
- Related Work
- Conclusion
- References
- A Comparison of Intermediate Verification Languages: Boogie and Sireum/Pilar
- Introduction
- Background
- Scope of Comparison
- Translation of a Simple Java Program
- Comparison of Language Features
- Basic Assertion Language
- Basic Control Flow
- Annotations
- Specification of Contracts
- Modeling Data Structures and Object Oriented Type Systems
- Unique Features and Tool Support
- Preliminary Validation: Ruby to Boogie and Pilar
- Type System Modeling
- Handling Arrays
- Modeling Fields
- Control Flow
- Summary
- Related Work
- Conclusion and Future Work
- References
- LLBMC: Bounded Model Checking of C and C++ Programs Using a Compiler IR
- Introduction
- BMC and LLBMC's Built-In Checks
- LLVM
- The Approach of LLBMC
- From LLVM-IR to ILR
- Adding Checks to the ILR Formula
- Simplification of the ILR Formula
- Counterexample Generation
- Encoding Memory Checks
- Evaluation
- Related Work
- Conclusions and Future Work
- References
- The Marriage of Exploration and Deduction
- Modeling and Validating the Train Fare Calculation and Adjustment SystemUsing VDM++
- Introduction
- Project Overview
- The TFCAS System: An Informal Overview
- Goals and Approach of the Project
- VDM++ Model of the TFCAS
- Architecture of the System
- A Simple Example of the TFCAS's Functionality
- Analysis of Identified Issues
- Testing and Validating Process
- Experiments
- Lessons Learned
- Related Work
- Conclusions
- References
- Formalized Verification of Snapshotable Trees: Separation and Sharing
- Introduction
- Case Study: Snapshotable Trees
- Interface: Operations on Snapshotable Trees
- Example Client Code
- Implementations of Snapshotable Trees
- Abstract Specification and Client Code Verification
- Specification of the ITree Interface
- Iterator Specification
- Client Code Verification
- Implementation A1B1
- Iterator
- On the Verification of Implemented Code
- Related Work
- Conclusion and Future Work
- References
- Appendix
- Comparing Verification Condition Generation with Symbolic Execution: An Experience Report
- Introduction
- Background
- Verification Condition Generation
- Symbolic Execution
- Experiment and Results
- Additional Observations
- Heap Compression
- Branching
- Related Work
- Conclusion
- References
- Verification of TLB Virtualization Implemented in C
- Introduction
- Verification Methodology
- VCC Background
- Modelling Hardware
- Specification
- Host Hardware Model
- Virtual Hardware Model
- Memory Virtualization
- Correctness of TLB Virtualization
- Implementation and Verification in VCC
- Specification
- Implementation
- Verification
- Conclusion and Future Work
- References
- Formalization and Analysis of Real-Time Requirements: A Feasibility Study at BOSCH
- Introduction
- The Tool Chain
- The Specification Language
- Translation of the SPS to Duration Calculus
- The Correctness Properties
- The Tool
- Planning of the Feasibility Study
- Study Goals and Questions
- Selection of the Sample
- Feasibility Study Design
- Analysis of the Results
- Benefit
- Observations
- Threats to Validity
- Construct Validity
- External Validity
- Conclusion
- References
- Our Experience with the CodeContracts Static Checker
- References
- Isabelle/Circus: A Process Specification and Verification Environment
- Introduction
- Background
- Isabelle, HOL and Isabelle/HOL
- Advanced Specification Constructs in Isabelle/HOL
- Circus and Its UTP Foundation
- Isabelle/Circus
- Alphabets and Variables
- Synchronization Infrastructure: Name Sets and Channels
- Actions and Processes
- Using Isabelle/Circus
- Writing Specifications
- Relational and Functional Refinement in Circus
- Refinement Proofs
- Conclusions
- References
- Termination Analysis of Imperative Programs Using Bitvector Arithmetic
- Introduction
- A Brief Overview of LLVM and Its Use in KITTeL
- LLVM-IR
- Termination Analysis Using LLVM
- Translating LLVM-IR Programs into Transition Systems
- Representing Transition Systems Using int-Based TRSs
- Termination Analysis of int-Based TRSs
- Encoding Bitvector Arithmetic
- Phase 1
- Phase 2
- Experimental Results and Evaluation
- Conclusions
- References
- Specifying and Verifying the Correctness of Dynamic Software Updates
- Introduction
- Defining Dynamic Software Update Correctness
- Prior Work on Update Correctness
- Client-Oriented Specifications
- Verification via Program Merging
- Syntax
- Semantics
- Program Merging Transformation
- Equivalence
- Experiments
- Programs
- Effectiveness
- Related Work
- Summary
- References
- Symbolic Execution Enhanced System Testing
- Introduction
- Background
- Approach
- Testing Algorithms
- Experience
- Conclusion
- References
- Infeasible Code Detection
- Introduction
- Examples of Infeasible Code
- Infeasible Code, Effectual Sets, and Path Covers
- A Path Cover Algorithm
- Checking Constrained Path Infeasibility
- Implementation
- Evaluation
- Conclusion
- References
- Author Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.