42,652 research outputs found
Language Definitions as Rewrite Theories
(To appear in Springer LNCS)International audienceK is a formal framework for defining the operational semantics of programming languages. It includes software tools for compiling K language definitions to Maude rewrite theories, for executing programs in the defined languages based on the Maude rewriting engine, and for analyzing programs by adapting various Maude analysis tools. A recent extension to the K tool suite is an automatic transformation of language definitions that enables the symbolic execution of programs, i.e., the execution of programs with symbolic inputs. In this paper we investigate the theoretical relationships between K language definitions and their translations to Maude, between symbolic extensions of K definitions and their Maude encodings, and how the relations between K definitions and their symbolic extensions are reflected on their respective representations in Maude. These results show, in particular, how analyses performed with Maude tools can be formally lifted up to the original language definitions
A Constructor-Based Reachability Logic for Rewrite Theories
Reachability logic has been applied to K
rewrite-rule-based language definitions as a
language-generic logic of programs. It has been proved
successful in verifying a wide range of sophisticated programs in
conventional languages. Here we study how reachability logic
can be made not just language-generic, but
rewrite-theory-generic to make it available not just
for conventional program verification, but also to verify rewriting-logic-based
programs and distributed system designs. A theory-generic
reachability logic is presented and proved sound for a wide class of
rewrite theories. Particular attention is given to increasing the
logic's automation by means of constructor-based semantic
unification, matching, and satisfiability procedures. The
relationships to Hoare logic and LTL are discussed, new methods for
proving invariants of possibly never terminating distributed systems
are developed, and experiments with a prototype implementation
illustrating the new methods are presented.Partially supported by NSF Grants CNS 13-19109 and CNS 14-09416, and AFOSR Contract FA8750-11-2-0084.Ope
Phobos: A front-end approach to extensible compilers (long version)
This paper describes a practical approach for implementing certain types of domain-specific languages with extensible compilers. Given a compiler with one or more front-end languages, we introduce the idea of a "generic" front-end that allows the syntactic and semantic specification of domain-specific languages. Phobos, our generic front-end, offers modular language specification, allowing the programmer to define new syntax and semantics incrementally
Canonical Abstract Syntax Trees
This paper presents Gom, a language for describing abstract syntax trees and
generating a Java implementation for those trees. Gom includes features
allowing the user to specify and modify the interface of the data structure.
These features provide in particular the capability to maintain the internal
representation of data in canonical form with respect to a rewrite system. This
explicitly guarantees that the client program only manipulates normal forms for
this rewrite system, a feature which is only implicitly used in many
implementations
A Universal Machine for Biform Theory Graphs
Broadly speaking, there are two kinds of semantics-aware assistant systems
for mathematics: proof assistants express the semantic in logic and emphasize
deduction, and computer algebra systems express the semantics in programming
languages and emphasize computation. Combining the complementary strengths of
both approaches while mending their complementary weaknesses has been an
important goal of the mechanized mathematics community for some time. We pick
up on the idea of biform theories and interpret it in the MMTt/OMDoc framework
which introduced the foundations-as-theories approach, and can thus represent
both logics and programming languages as theories. This yields a formal,
modular framework of biform theory graphs which mixes specifications and
implementations sharing the module system and typing information. We present
automated knowledge management work flows that interface to existing
specification/programming tools and enable an OpenMath Machine, that
operationalizes biform theories, evaluating expressions by exhaustively
applying the implementations of the respective operators. We evaluate the new
biform framework by adding implementations to the OpenMath standard content
dictionaries.Comment: Conferences on Intelligent Computer Mathematics, CICM 2013 The final
publication is available at http://link.springer.com
Checking Zenon Modulo Proofs in Dedukti
Dedukti has been proposed as a universal proof checker. It is a logical
framework based on the lambda Pi calculus modulo that is used as a backend to
verify proofs coming from theorem provers, especially those implementing some
form of rewriting. We present a shallow embedding into Dedukti of proofs
produced by Zenon Modulo, an extension of the tableau-based first-order theorem
prover Zenon to deduction modulo and typing. Zenon Modulo is applied to the
verification of programs in both academic and industrial projects. The purpose
of our embedding is to increase the confidence in automatically generated
proofs by separating untrusted proof search from trusted proof verification.Comment: In Proceedings PxTP 2015, arXiv:1507.0837
Open Graphs and Monoidal Theories
String diagrams are a powerful tool for reasoning about physical processes,
logic circuits, tensor networks, and many other compositional structures. The
distinguishing feature of these diagrams is that edges need not be connected to
vertices at both ends, and these unconnected ends can be interpreted as the
inputs and outputs of a diagram. In this paper, we give a concrete construction
for string diagrams using a special kind of typed graph called an open-graph.
While the category of open-graphs is not itself adhesive, we introduce the
notion of a selective adhesive functor, and show that such a functor embeds the
category of open-graphs into the ambient adhesive category of typed graphs.
Using this functor, the category of open-graphs inherits "enough adhesivity"
from the category of typed graphs to perform double-pushout (DPO) graph
rewriting. A salient feature of our theory is that it ensures rewrite systems
are "type-safe" in the sense that rewriting respects the inputs and outputs.
This formalism lets us safely encode the interesting structure of a
computational model, such as evaluation dynamics, with succinct, explicit
rewrite rules, while the graphical representation absorbs many of the tedious
details. Although topological formalisms exist for string diagrams, our
construction is discreet, finitary, and enjoys decidable algorithms for
composition and rewriting. We also show how open-graphs can be parametrised by
graphical signatures, similar to the monoidal signatures of Joyal and Street,
which define types for vertices in the diagrammatic language and constraints on
how they can be connected. Using typed open-graphs, we can construct free
symmetric monoidal categories, PROPs, and more general monoidal theories. Thus
open-graphs give us a handle for mechanised reasoning in monoidal categories.Comment: 31 pages, currently technical report, submitted to MSCS, waiting
review
Formalization of the fundamental group in untyped set theory using auto2
We present a new framework for formalizing mathematics in untyped set theory
using auto2. Using this framework, we formalize in Isabelle/FOL the entire
chain of development from the axioms of set theory to the definition of the
fundamental group for an arbitrary topological space. The auto2 prover is used
as the sole automation tool, and enables succinct proof scripts throughout the
project.Comment: 17 pages, accepted for ITP 201
- …