Verified Functional Programming in Agda

Verified Functional Programming in Agda
Author: Aaron Stump
Publisher: Morgan & Claypool
Total Pages: 328
Release: 2016-02-01
Genre: Computers
ISBN: 1970001267

Agda is an advanced programming language based on Type Theory. Agda's type system is expressive enough to support full functional verification of programs, in two styles. In external verification, we write pure functional programs and then write proofs of properties about them. The proofs are separate external artifacts, typically using structural induction. In internal verification, we specify properties of programs through rich types for the programs themselves. This often necessitates including proofs inside code, to show the type checker that the specified properties hold. The power to prove properties of programs in these two styles is a profound addition to the practice of programming, giving programmers the power to guarantee the absence of bugs, and thus improve the quality of software more than previously possible. Verified Functional Programming in Agda is the first book to provide a systematic exposition of external and internal verification in Agda, suitable for undergraduate students of Computer Science. No familiarity with functional programming or computer-checked proofs is presupposed. The book begins with an introduction to functional programming through familiar examples like booleans, natural numbers, and lists, and techniques for external verification. Internal verification is considered through the examples of vectors, binary search trees, and Braun trees. More advanced material on type-level computation, explicit reasoning about termination, and normalization by evaluation is also included. The book also includes a medium-sized case study on Huffman encoding and decoding.


Verified

Verified
Author: Mike Caulfield
Publisher: University of Chicago Press
Total Pages: 281
Release: 2023-11-17
Genre: Reference
ISBN: 0226829847

An indispensable guide for telling fact from fiction on the internet—often in less than 30 seconds. The internet brings information to our fingertips almost instantly. The result is that we often jump to thinking too fast, without taking a few moments to verify the source before engaging with a claim or viral piece of media. Information literacy expert Mike Caulfield and educational researcher Sam Wineburg are here to enable us to take a moment for due diligence with this informative, approachable guide to the internet. With this illustrated tool kit, you will learn to identify red flags, get quick context, and make better use of common websites like Google and Wikipedia that can help and hinder in equal measure. This how-to guide will teach you how to use the web to verify the web, quickly and efficiently, including how to • Verify news stories and other events in as little as thirty seconds (seriously) • Determine if the article you’re citing is by a reputable scholar or a quack • Detect the slippery tactics scammers use to make their sites look credible • Decide in a minute if that shocking video is truly shocking • Deduce who’s behind a site—even when its ownership is cleverly disguised • Uncover if that feature story is actually a piece planted by a foreign government • Use Wikipedia wisely to gain a foothold on new topics and leads for digging deeper And so much more. Building on techniques like SIFT and lateral reading, Verified will help students and anyone else looking to get a handle on the internet’s endless flood of information through quick, practical, and accessible steps.


Verified Software: Theories, Tools, Experiments

Verified Software: Theories, Tools, Experiments
Author: Natarajan Shankar
Publisher: Springer
Total Pages: 274
Release: 2008-09-26
Genre: Computers
ISBN: 3540878734

This volume contains the proceedings of the second working conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2008, held in Toronto, Canada, in October 2008. The 16 papers presented together with 4 invited talks were carefully revised and selected for inclusion in the book. This second conference formally inaugurates the Verified Software Initiative (VSI), a fifteen-year, co-operative, international project directed at the scientific challenges of large-scale software verification. The scope of the cooperative effort includes the sharing and interoperability of tools, the alignment of theory and practice, the identification of challenge problems, the construction of benchmark suites, and the execution of large-scale experiments.


Verified Software. Theories, Tools, and Experiments

Verified Software. Theories, Tools, and Experiments
Author: Ruzica Piskac
Publisher: Springer
Total Pages: 359
Release: 2018-11-23
Genre: Computers
ISBN: 3030035921

This volume constitutes the thoroughly refereed post-conference proceedings of the 10th International Conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2018, held in Oxford, UK, in July 2018. The 19 full papers presented were carefully revised and selected from 24 submissions. The papers describe large-scale verification efforts that involve collaboration, theory unification, tool integration, and formalized domain knowledge as well as novel experiments and case studies evaluating verification techniques and technologies.


VLISP A Verified Implementation of Scheme

VLISP A Verified Implementation of Scheme
Author: Joshua D. Guttman
Publisher: Springer Science & Business Media
Total Pages: 186
Release: 2012-12-06
Genre: Computers
ISBN: 1461523397

The VLISP project showed how to produce a comprehensively verified implemen tation for a programming language, namely Scheme [4, 15). Some of the major elements in this verification were: • The proof was based on the Clinger-Rees denotational semantics of Scheme given in [15). Our goal was to produce a "warts-and-all" verification of a real language. With very few exceptions, we constrained ourselves to use the se mantic specification as published. The verification was intended to be rigorous, but. not. complet.ely formal, much in the style of ordinary mathematical discourse. Our goal was to verify the algorithms and data types used in the implementat.ion, not their embodiment. in code. See Section 2 for a more complete discussion ofthese issues. Our decision to be faithful to the published semantic specification led to the most difficult portions ofthe proofs; these are discussed in [13, Section 2.3-2.4). • Our implementation was based on the Scheme48 implementation of Kelsey and Rees [17). This implementation t.ranslates Scheme into an intermediate-level "byte code" language, which is interpreted by a virtual machine. The virtual machine is written in a subset of Scheme called PreScheme. The implementationissufficient.ly complete and efficient to allow it to bootstrap itself. We believe that this is the first. verified language implementation with these properties.


Towards Verified Systems

Towards Verified Systems
Author: J. Bowen
Publisher: Elsevier
Total Pages: 323
Release: 2013-10-22
Genre: Computers
ISBN: 1483291529

As the complexity of embedded computer-controlled systems increases, the present industrial practice for their development gives cause for concern, especially for safety-critical applications where human lives are at stake. The use of software in such systems has increased enormously in the last decade. Formal methods, based on firm mathematical foundations, provide one means to help with reducing the risk of introducing errors during specification and development. There is currently much interest in both academic and industrial circles concerning the issues involved, but the techniques still need further investigation and promulgation to make their widespread use a reality. This book presents results of research into techniques to aid the formal verification of mixed hardware/software systems. Aspects of system specification and verification from requirements down to the underlying hardware are addressed, with particular regard to real-time issues. The work presented is largely based around the Occam programming language and Transputer microprocessor paradigm. The HOL theorem prover, based on higher order logic, has mainly been used in the application of machine-checked proofs. The book describes research work undertaken on the collaborative UK DTI/SERC-funded Information Engineering Dictorate Safemos project. The partners were Inmos Ltd., Cambridge SRI, the Oxford University Computing Laboratory and the University of Cambridge Computer Laboratory, who investigated the problems of formally verifying embedded systems. The most important results of the project are presented in the form of a series of interrelated chapters by project members and associated personnel. In addition, overviews of two other ventures with similar objectives are included as appendices. The material in this book is intended for computing science researchers and advanced industrial practitioners interested in the application of formal methods to real-time safety-critical systems at all levels of abstraction from requirements to hardware. In addition, material of a more general nature is presented, which may be of interest to managers in charge of projects applying formal methods, especially for safety-critical-systems, and others who are considering their use.


Verified Software: Theories, Tools, Experiments

Verified Software: Theories, Tools, Experiments
Author: Gary T. Leavens
Publisher: Springer
Total Pages: 225
Release: 2010-08-12
Genre: Computers
ISBN: 3642150578

This volume contains the proceedings of the third working conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2010, held in Edinburgh, UK, in August 2010. The 11 papers presented together with 3 invited talks were carefully revised and selected for inclusion in the book. This third conference is part of the Verified Software Initiative (VSI), which is a 15 year international project that focuses on the scientific and technical challenges of producing verified software. The goal of VSTTE 2010 was to advance the state of the art in the science and technology of software verification through the interaction of theory development, tool evolution, and experimental validation. The accepted papers represent work on verification techniques, specification languages, formal calculi, verification tools, solutions to challenge problems, software design methods, reusable components, refinement methodologies, and requirements modeling.


Verified Software. Theories, Tools, and Experiments

Verified Software. Theories, Tools, and Experiments
Author: Andrei Paskevich
Publisher: Springer
Total Pages: 223
Release: 2017-12-15
Genre: Computers
ISBN: 3319723081

This volume constitutes the thoroughly refereed post-conference proceedings of the 9th International Conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2017, held in Heidelberg, Germany, in July 2017. The 12 full papers presented were carefully revised and selected from 20 submissions. The papers describe large-scale verification efforts that involve collaboration, theory unification, tool integration, and formalized domain knowledge as well as novel experiments and case studies evaluating verification techniques and technologies.