6,213 research outputs found
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
A Pragmatic Interpretation of Quantum Logic
Scholars have wondered for a long time whether the language of quantum
mechanics introduces a quantum notion of truth which is formalized by quantum
logic (QL) and is incompatible with the classical (Tarskian) notion. We show
that QL can be interpreted as a pragmatic language of assertive formulas which
formalize statements about physical systems that are empirically justified or
unjustified in the framework of quantum mechanics. According to this
interpretation, QL formalizes properties of the metalinguistic notion of
empirical justification within quantum mechanics rather than properties of a
quantum notion of truth. This conclusion agrees with a general integrationist
perspective that interprets nonstandard logics as theories of metalinguistic
notions different from truth, thus avoiding incompatibility with classical
notions and preserving the globality of logic. By the way, some elucidations of
the standard notion of quantum truth are also obtained.
Key words: pragmatics, quantum logic, quantum mechanics, justifiability,
global pluralism.Comment: Third version: 20 pages. Sects. 1, 2, and 4 rewritten and improved.
Explanations adde
Automated Verification of Practical Garbage Collectors
Garbage collectors are notoriously hard to verify, due to their low-level
interaction with the underlying system and the general difficulty in reasoning
about reachability in graphs. Several papers have presented verified
collectors, but either the proofs were hand-written or the collectors were too
simplistic to use on practical applications. In this work, we present two
mechanically verified garbage collectors, both practical enough to use for
real-world C# benchmarks. The collectors and their associated allocators
consist of x86 assembly language instructions and macro instructions, annotated
with preconditions, postconditions, invariants, and assertions. We used the
Boogie verification generator and the Z3 automated theorem prover to verify
this assembly language code mechanically. We provide measurements comparing the
performance of the verified collector with that of the standard Bartok
collectors on off-the-shelf C# benchmarks, demonstrating their competitiveness
GamaSlicer : an online laboratory for program verification and analysis
In this paper we present the GamaSlicer tool, which is primarily a
semantics-based program slicer that also offers formal verification
(generation of verification conditions) and program visualization
functionality. The tool allows users to obtain slices using a
number of different families of slicing algorithms (\precond-based,
\postcond-based, and specification-based), from a correct software
component annotated with pre and postconditions (contracts written
in JML-annotated Java). Each family in turn contains algorithms of
different precision (with more precise algorithms being
asymptotically slower). A novelty of our work at the theoretical
level is the inclusion of a new, much more effective algorithm for
specification-based slicing, and in fact other current work at this
level is being progressively incorporated in the tool.
The tool also generates (in a step-by-step fashion) a set of
verification conditions (as formulas written in the SMT-lib
language, which enables the use of different automatic SMT
provers). This allows to establish the initial correctness of the
code with respect to their contracts.Fundação para a Ciência e a Tecnologia (FCT
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
- …