4,930 research outputs found
LoopW Technical Reference v0.3
This document describes the implementation in SML of the LoopW language, an
imperative language with higher-order procedural variables and non-local jumps
equiped with a program logic. It includes the user manual along with some
implementation notes and many examples of certified imperative programs. As a
concluding example, we show the certification of an imperative program encoding
shift/reset using callcc/throw and a global meta-continuation
Do Goedel's incompleteness theorems set absolute limits on the ability of the brain to express and communicate mental concepts verifiably?
Classical interpretations of Goedel's formal reasoning imply that the truth
of some arithmetical propositions of any formal mathematical language, under
any interpretation, is essentially unverifiable. However, a language of
general, scientific, discourse cannot allow its mathematical propositions to be
interpreted ambiguously. Such a language must, therefore, define mathematical
truth verifiably. We consider a constructive interpretation of classical,
Tarskian, truth, and of Goedel's reasoning, under which any formal system of
Peano Arithmetic is verifiably complete. We show how some paradoxical concepts
of Quantum mechanics can be expressed, and interpreted, naturally under a
constructive definition of mathematical truth.Comment: 73 pages; this is an updated version of the NQ essay; an HTML version
is available at http://alixcomsi.com/Do_Goedel_incompleteness_theorems.ht
Meta-F*: Proof Automation with SMT, Tactics, and Metaprograms
We introduce Meta-F*, a tactics and metaprogramming framework for the F*
program verifier. The main novelty of Meta-F* is allowing the use of tactics
and metaprogramming to discharge assertions not solvable by SMT, or to just
simplify them into well-behaved SMT fragments. Plus, Meta-F* can be used to
generate verified code automatically.
Meta-F* is implemented as an F* effect, which, given the powerful effect
system of F*, heavily increases code reuse and even enables the lightweight
verification of metaprograms. Metaprograms can be either interpreted, or
compiled to efficient native code that can be dynamically loaded into the F*
type-checker and can interoperate with interpreted code. Evaluation on
realistic case studies shows that Meta-F* provides substantial gains in proof
development, efficiency, and robustness.Comment: Full version of ESOP'19 pape
Lightweight Formal Verification in Classroom Instruction of Reasoning about Functional Code
In college courses dealing with material that requires mathematical rigor, the adoption of a machine-readable representation for formal arguments can be advantageous. Students can focus on a specific collection of constructs that are represented consistently. Examples and counterexamples can be evaluated. Assignments can be assembled and checked with the help of an automated formal reasoning system. However, usability and accessibility do not have a high priority and are not addressed sufficiently well in the design of many existing machine-readable representations and corresponding formal reasoning systems. In earlier work [Lap09], we attempt to address this broad problem by proposing several specific design criteria organized around the notion of a natural context: the sphere of awareness a working human user maintains of the relevant constructs, arguments, experiences, and background materials necessary to accomplish the task at hand. We report on our attempt to evaluate our proposed design criteria by deploying within the classroom a lightweight formal verification system designed according to these criteria. The lightweight formal verification system was used within the instruction of a common application of formal reasoning: proving by induction formal propositions about functional code. We present all of the formal reasoning examples and assignments considered during this deployment, most of which are drawn directly from an introductory text on functional programming. We demonstrate how the design of the system improves the effectiveness and understandability of the examples, and how it aids in the instruction of basic formal reasoning techniques. We make brief remarks about the practical and administrative implications of the system’s design from the perspectives of the student, the instructor, and the grader
- …