5,936 research outputs found
Nominal Abstraction
Recursive relational specifications are commonly used to describe the
computational structure of formal systems. Recent research in proof theory has
identified two features that facilitate direct, logic-based reasoning about
such descriptions: the interpretation of atomic judgments through recursive
definitions and an encoding of binding constructs via generic judgments.
However, logics encompassing these two features do not currently allow for the
definition of relations that embody dynamic aspects related to binding, a
capability needed in many reasoning tasks. We propose a new relation between
terms called nominal abstraction as a means for overcoming this deficiency. We
incorporate nominal abstraction into a rich logic also including definitions,
generic quantification, induction, and co-induction that we then prove to be
consistent. We present examples to show that this logic can provide elegant
treatments of binding contexts that appear in many proofs, such as those
establishing properties of typing calculi and of arbitrarily cascading
substitutions that play a role in reducibility arguments.Comment: To appear in the Journal of Information and Computatio
Mendler-style Iso-(Co)inductive predicates: a strongly normalizing approach
We present an extension of the second-order logic AF2 with iso-style
inductive and coinductive definitions specifically designed to extract programs
from proofs a la Krivine-Parigot by means of primitive (co)recursion
principles. Our logic includes primitive constructors of least and greatest
fixed points of predicate transformers, but contrary to the common approach, we
do not restrict ourselves to positive operators to ensure monotonicity, instead
we use the Mendler-style, motivated here by the concept of monotonization of an
arbitrary operator on a complete lattice. We prove an adequacy theorem with
respect to a realizability semantics based on saturated sets and
saturated-valued functions and as a consequence we obtain the strong
normalization property for the proof-term reduction, an important feature which
is absent in previous related work.Comment: In Proceedings LSFA 2011, arXiv:1203.542
Probabilistic call by push value
We introduce a probabilistic extension of Levy's Call-By-Push-Value. This
extension consists simply in adding a " flipping coin " boolean closed atomic
expression. This language can be understood as a major generalization of
Scott's PCF encompassing both call-by-name and call-by-value and featuring
recursive (possibly lazy) data types. We interpret the language in the
previously introduced denotational model of probabilistic coherence spaces, a
categorical model of full classical Linear Logic, interpreting data types as
coalgebras for the resource comonad. We prove adequacy and full abstraction,
generalizing earlier results to a much more realistic and powerful programming
language
From coinductive proofs to exact real arithmetic: theory and applications
Based on a new coinductive characterization of continuous functions we
extract certified programs for exact real number computation from constructive
proofs. The extracted programs construct and combine exact real number
algorithms with respect to the binary signed digit representation of real
numbers. The data type corresponding to the coinductive definition of
continuous functions consists of finitely branching non-wellfounded trees
describing when the algorithm writes and reads digits. We discuss several
examples including the extraction of programs for polynomials up to degree two
and the definite integral of continuous maps
Machine-Checked Proofs For Realizability Checking Algorithms
Virtual integration techniques focus on building architectural models of
systems that can be analyzed early in the design cycle to try to lower cost,
reduce risk, and improve quality of complex embedded systems. Given appropriate
architectural descriptions, assume/guarantee contracts, and compositional
reasoning rules, these techniques can be used to prove important safety
properties about the architecture prior to system construction. For these
proofs to be meaningful, each leaf-level component contract must be realizable;
i.e., it is possible to construct a component such that for any input allowed
by the contract assumptions, there is some output value that the component can
produce that satisfies the contract guarantees. We have recently proposed (in
[1]) a contract-based realizability checking algorithm for assume/guarantee
contracts over infinite theories supported by SMT solvers such as linear
integer/real arithmetic and uninterpreted functions. In that work, we used an
SMT solver and an algorithm similar to k-induction to establish the
realizability of a contract, and justified our approach via a hand proof. Given
the central importance of realizability to our virtual integration approach, we
wanted additional confidence that our approach was sound. This paper describes
a complete formalization of the approach in the Coq proof and specification
language. During formalization, we found several small mistakes and missing
assumptions in our reasoning. Although these did not compromise the correctness
of the algorithm used in the checking tools, they point to the value of
machine-checked formalization. In addition, we believe this is the first
machine-checked formalization for a realizability algorithm.Comment: 14 pages, 1 figur
A Framework for Specifying, Prototyping, and Reasoning about Computational Systems
This thesis concerns the development of a framework that facilitates the
design and analysis of formal systems. Specifically, this framework provides a
specification language which supports the concise and direct description of
formal systems, a mechanism for animating the specification language thereby
producing prototypes of encoded systems, and a logic for proving properties of
specifications and therefore of the systems they encode. A defining
characteristic of the proposed framework is that it is based on two separate
but closely intertwined logics: a specification logic that facilitates the
description of computational structure and another logic that exploits the
special characteristics of the specification logic to support reasoning about
the computational behavior of systems that are described using it. Both logics
embody a natural treatment of binding structure by using the lambda-calculus as
a means for representing objects and by incorporating special mechanisms for
working with such structure. By using this technique, they lift the treatment
of binding from the object language into the domain of the relevant meta logic,
thereby allowing the specification or analysis components to focus on the more
essential logical aspects of the systems that are encoded. The primary
contributions of these thesis are the development of a rich meta-logic called G
with capabilities for sophisticated reasoning that includes induction and
co-induction over high-level specifications of computations and with an
associated cut-elimination result; an interactive reasoning system called
Abella based on G; and several reasoning examples which demonstrate the
expressiveness and naturalness of both G and Abella.Comment: PhD Thesis submitted September, 200
Proof Search Specifications of the pi-calculus
International audienceWe specify the operational semantics and bisimulation relations for the finite pi-calculus within a logic that contains the nabla quantifier for encoding generic judgments and definitions for encoding fixed points. Since we restrict to the finite case, the ability of the logic to unfold fixed points allows this logic to be complete for both the inductive nature of operational semantics and the coinductive nature of bisimulation. The nabla quantifier helps with the delicate issues surrounding the scope of variables within pi-calculus expressions and their executions (proofs). We illustrate several merits of the logical specifications permitted by this logic: they are natural and declarative; they contain no side-conditions concerning names of variables while maintaining a completely formal treatment of such variables; differences between late and open bisimulation relations arise from familar logic distinctions; the interplay between the three quantifiers (forall, exists, and nabla) and their scopes can explain the differences between early and late bisimulation and between various modal operators based on bound input and output actions; and proof search involving the application of inference rules, unification, and backtracking can provide complete proof systems for one-step transitions, bisimulation, and satisfaction in modal logic. We also illustrate how one can encode the pi-calculus with replications, in an extended logic with induction and co-induction
- …