Results 1  10
of
10
Untyping Typed Algebraic Structures and Colouring Proof Nets of Cyclic Linear Logic
 COMPUTER SCIENCE LOGIC, CZECH REPUBLIC
, 2010
"... We prove “untyping” theorems: in some typed theories (semirings, Kleene algebras, residuated lattices, involutive residuated lattices), typed equations can be derived from the underlying untyped equations. As a consequence, the corresponding untyped decision procedures can be extended for free to th ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
We prove “untyping” theorems: in some typed theories (semirings, Kleene algebras, residuated lattices, involutive residuated lattices), typed equations can be derived from the underlying untyped equations. As a consequence, the corresponding untyped decision procedures can be extended for free to the typed settings. Some of these theorems are obtained via a detour through fragments of cyclic linear logic, and give rise to a substantial optimisation of standard proof search algorithms.
Kleene Algebra with Tests and Coq Tools for While Programs
, 2013
"... Abstract. We present a Coq library about Kleene algebra with tests, including a proof of their completeness over the appropriate notion of languages, a decision procedure for their equational theory, and tools for exploiting hypotheses of a certain kind in such a theory. Kleene algebra with tests ma ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We present a Coq library about Kleene algebra with tests, including a proof of their completeness over the appropriate notion of languages, a decision procedure for their equational theory, and tools for exploiting hypotheses of a certain kind in such a theory. Kleene algebra with tests make it possible to represent ifthenelse statements and while loops in most imperative programming languages. They were actually introduced by Kozen as an alternative to propositional Hoare logic. We show how to exploit the corresponding Coq tools in the context of program verification by proving equivalences of while programs, correctness of some standard compiler optimisations, Hoare rules for partial correctness, and a particularly challenging equivalence of flowchart schemes.
Coq: The world’s best macro assembler?
"... We describe a Coq formalization of a subset of the x86 architecture. One emphasis of the model is brevity: using dependent types, type classes and notation we give the x86 semantics a makeover that counters its reputation for baroqueness. We model bits, bytes, and memory concretely using functions t ..."
Abstract
 Add to MetaCart
(Show Context)
We describe a Coq formalization of a subset of the x86 architecture. One emphasis of the model is brevity: using dependent types, type classes and notation we give the x86 semantics a makeover that counters its reputation for baroqueness. We model bits, bytes, and memory concretely using functions that can be computed inside Coq itself; concrete representations are mapped across to mathematical objects in the SSREFLECT library (naturals, and integers modulo 2 n) to prove theorems. Finally, we use notation to support conventional assembly code syntax inside Coq, including lexicallyscoped labels. Ordinary Coq definitions serve as a powerful “macro ” feature for everything from simple conditionals and loops to stackallocated local variables and procedures with parameters. Assembly code can be assembled within Coq, producing a sequence of hex bytes. The assembler enjoys a correctness theorem relating machine code in memory to a separationlogic formula suitable for program verification. 1.
A language of patterns for subterm selection
, 2012
"... Abstract. This paper describes the language of patterns that equips the SSReflect proof shell extension for the Coq system. Patterns are used to focus proof commands on subexpressions of the conjecture under analysis in a declarative manner. They are designed to ease the writing of proof scripts and ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. This paper describes the language of patterns that equips the SSReflect proof shell extension for the Coq system. Patterns are used to focus proof commands on subexpressions of the conjecture under analysis in a declarative manner. They are designed to ease the writing of proof scripts and to increase their readability and maintainability. A pattern can identify the subexpression of interest approximating the subexpression itself, or its enclosing context or both. The user is free to choose the most convenient option. Patterns are matched following an extremely precise and predictable discipline, that is carefully designed to admit an efficient implementation. In this paper we report on the language of patterns, its matching algorithm and its usage in the formal library developed by the Mathematical Components team to support the verification of the Odd Order Theorem. 1
Noname manuscript No. (will be inserted by the editor) Proof Pearl: Regular Expression Equivalence and Relation Algebra
"... the date of receipt and acceptance should be inserted later Abstract We describe and verify an elegant equivalence checker for regular expressions. It works by constructing a bisimulation relation between (derivatives of) regular expressions. By mapping regular expressions to binary relations, an au ..."
Abstract
 Add to MetaCart
(Show Context)
the date of receipt and acceptance should be inserted later Abstract We describe and verify an elegant equivalence checker for regular expressions. It works by constructing a bisimulation relation between (derivatives of) regular expressions. By mapping regular expressions to binary relations, an automatic and complete proof method for (in)equalities of binary relations over union, composition and (reflexive) transitive closure is obtained. The verification is carried out in the theorem prover Isabelle/HOL, yielding a practically useful decision procedure. 1
Departamento de Ciência de Computadores Laboratório de Inteligência Artificial e Ciência de Computadores
, 2009
"... The minimal deterministic finite automaton is generally used to determine regular languages equality. Antimirov and Mosses proposed a rewrite system for deciding regular expressions equivalence of which Almeida et al. presented an improved variant. Hopcroft and Karp proposed an almost linear algorit ..."
Abstract
 Add to MetaCart
The minimal deterministic finite automaton is generally used to determine regular languages equality. Antimirov and Mosses proposed a rewrite system for deciding regular expressions equivalence of which Almeida et al. presented an improved variant. Hopcroft and Karp proposed an almost linear algorithm for testing the equivalence of two deterministic finite automata that avoids minimisation. In this paper we improve the bestcase running time, present an extension of this algorithm to nondeterministic finite automaton, and establish a relationship between this algorithm and the one proposed in Almeida et al. We also present some experimental comparative results. All these algorithms are closely related with the recent coalgebraic approach to automata proposed by Rutten. 1
Towards primitive data types for COQ: 63bits integers and persistent arrays ∗
, 2013
"... As formal methods are applied to an increasingly wide variety of areas of mathematics and program verification, the need for efficient computations inside proof assistants is becoming more present. Typical applications are proofs inherently relying on costly computations, like the four color theorem ..."
Abstract
 Add to MetaCart
As formal methods are applied to an increasingly wide variety of areas of mathematics and program verification, the need for efficient computations inside proof assistants is becoming more present. Typical applications are proofs inherently relying on costly computations, like the four color theorem [Gon07], the Kepler conjecture [Hal05] or the certification of big prime numbers [GTW06]. But computational capabilities can also be used to enhance proof automation, like tactics deciding algebraic identities over rings [GM05] or Kleene algebras [BP10] or calling external solvers without trusting them [Arm+11; BCP11]. Other original applications may include importing proof objects from different proof systems [KW10] or emitting formally verified assembly code [JBK13]. Addressing this need, the COQ proof assistant has evolved to offer new features for efficient computations. Runtime environments for terms evaluation have been improved, a key step being definitely the introduction of a bytecode compiler along with a dedicated virtual machine [GL02]. This has been recently refined to evaluation by compilation to native code [BDG11]. However, another critical source of performance (or lack thereof) is the choice of data structures to represent the objects involved in the computation. The case of numbers is symptomatic: the traditional unary representation for natural numbers
Certified Parsing of Regular Languages
"... Abstract. We report on a certified parser generator for regular languages using the Agda programming language. Specifically, we programmed a transformation of regular expressions into a Booleanmatrix based representation of nondeterministic finite automata (NFAs). And we proved (in Agda) that a st ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. We report on a certified parser generator for regular languages using the Agda programming language. Specifically, we programmed a transformation of regular expressions into a Booleanmatrix based representation of nondeterministic finite automata (NFAs). And we proved (in Agda) that a string matches a regular expression if and only if the NFA accepts it. The proof of the ifpart is effectively a function turning acceptance of a string into a parse tree while the onlyif part gives a function turning rejection into a proof of impossibility of a parse tree. 1
LNCS; Interactive Theorem Proving Interactive Theorem Proving. <10.1007/978364232347
, 2012
"... HAL is a multidisciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte p ..."
Abstract
 Add to MetaCart
(Show Context)
HAL is a multidisciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et a ̀ la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. A language of patterns for subterm selection