Results 1  10
of
10
Natural narrowing for general term rewriting systems
 Proc. of 16th International Conference on Rewriting Techniques and Applications, RTA’05, Lecture Notes in Computer Science
, 2005
"... Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a ..."
Abstract

Cited by 10 (7 self)
 Add to MetaCart
(Show Context)
Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a much broader range of applications to which narrowing can be fruitfully applied, including applications where rules have a nonequational meaning either as transitions in a concurrent system or as inferences in a logical system. In this paper, we propose an efficient lazy narrowing strategy called natural narrowing which can be applied to general term rewriting systems with no restrictions whatsoever. An important consequence of this generalization is the wide range of applications that can now be efficiently supported by narrowing. We highlight a few such applications including symbolic model checking, theorem proving, programming languages, and partial evaluation. What thus emerges is a general and efficient unified mechanism based on narrowing, that seamlessly integrates a very wide range of applications in programming and proving. 1
Superposition for fixed domains
, 2009
"... Superposition is an established decision procedure for a variety of firstorder logic theories represented by sets of clauses. A satisfiable theory, saturated by superposition, implicitly defines a minimal termgenerated model for the theory. Proving universal properties with respect to a saturated ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
(Show Context)
Superposition is an established decision procedure for a variety of firstorder logic theories represented by sets of clauses. A satisfiable theory, saturated by superposition, implicitly defines a minimal termgenerated model for the theory. Proving universal properties with respect to a saturated theory directly leads to a modification of the minimal model’s termgenerated domain, as new Skolem functions are introduced. For many applications, this is not desired. Therefore, we propose the first superposition calculus that can explicitly represent existentially quantified variables and can thus compute with respect to a given domain. This calculus is sound and refutationally complete for a firstorder fixed domain semantics. For some classes of formulas and theories, we can even employ the calculus to prove properties of the minimal model itself, going beyond the scope of known superpositionbased approaches.
The use of proof planning critics to diagnose errors in the base cases of recursive programs
 IJCAR 2004 Workshop on Disproving: NonTheorems, NonValidity, NonProvability
, 2004
"... This paper reports the use of proof planning to diagnose errors in program code. In particular it looks at the errors that arise in the base cases of recursive programs produced by undergraduates. It describes two classes of error that arise in this situation. The use of test cases would catch these ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
(Show Context)
This paper reports the use of proof planning to diagnose errors in program code. In particular it looks at the errors that arise in the base cases of recursive programs produced by undergraduates. It describes two classes of error that arise in this situation. The use of test cases would catch these errors but would fail to distinguish between them. The system adapts proof critics, commonly used to patch faulty proofs, to diagnose such errors and distinguish between the two classes. It has been implemented in λClam, a proof planning system, and applied successfully to a small set of examples. The use of mathematical proof to show that a computer program meets its specification has a long history in Computer Science (e.g. [14, 13]). Considerable time and effort has been invested in creating computerbased tools to support the process of proving programs correct (e.g. [15, 8]). However the technique and tools are only used in very specialised situations in industry where programmers generally rely on testing and bug reports from users to assess the extent to which a program meets its specification.
Natural narrowing as a general unified mechanism for programming and proving
, 2004
"... Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a much broader range of applications to which narrowing can be fruitfully applied, including applications where rules have a nonequational meaning either as transitions in a concurrent system or as inferences in a logical system. In this paper, we propose an efficient lazy narrowing strategy called natural narrowing which can be applied to general term rewriting systems with no restrictions whatsoever. An important consequence of this generalization is the wide range of applications that can now be efficiently supported by narrowing. We highlight a few such applications including symbolic model checking, theorem proving, programming languages, and partial evaluation. What thus emerges is a general and efficient unified mechanism based on narrowing, that seamlessly integrates a very wide range of applications in programming and proving. 1
Decidability Results for SaturationBased Model Building
"... Abstract. Saturationbased calculi such as superposition can be successfully instantiated to decision procedures for many decidable fragments of firstorder logic. In case of termination without generating an empty clause, a saturated clause set implicitly represents a minimal model for all clauses, ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
Abstract. Saturationbased calculi such as superposition can be successfully instantiated to decision procedures for many decidable fragments of firstorder logic. In case of termination without generating an empty clause, a saturated clause set implicitly represents a minimal model for all clauses, based on the underlying term ordering of the superposition calculus. In general, it is not decidable whether a ground atom, a clause or even a formula holds in this minimal model of a satisfiable saturated clause set. We extend our superposition calculus for fixed domains with syntactic disequality constraints in a nonequational setting. Based on this calculus, we present several new decidability results for validity in the minimal model of a satisfiable finitely saturated clause set that in particular extend the decidability results known for ARM (Atomic Representations of term Models) and DIG (Disjunctions of Implicit Generalizations) model representations. 1
Deciding the Inductive Validity of ∀ ∃∗ Queries
"... We present a new saturationbased decidability result for inductive validity. Let Σ be a finite signature in which all function symbols are at most unary and let N be a satisfiable Horn clause set without equality in which all positive literals are linear. If N ∪ {A1,..., An →} belongs to a class t ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
We present a new saturationbased decidability result for inductive validity. Let Σ be a finite signature in which all function symbols are at most unary and let N be a satisfiable Horn clause set without equality in which all positive literals are linear. If N ∪ {A1,..., An →} belongs to a class that can be finitely saturated by ordered resolution modulo variants, then it is decidable whether a sentence of the form ∀x.∃y.A1 ∧... ∧ An is valid in the minimal model of N.
Constrained Tree Grammars to Pilot Automated Proof by Induction
, 2004
"... In this paper, we develop a new approach for mechanizing induction on complex data structures (like bags, sorted lists, trees, powerlists. . . ) by adapting and generalizing works in tree automata with constraints. The key idea of our approach is to compute a tree grammar with constraints which d ..."
Abstract
 Add to MetaCart
In this paper, we develop a new approach for mechanizing induction on complex data structures (like bags, sorted lists, trees, powerlists. . . ) by adapting and generalizing works in tree automata with constraints. The key idea of our approach is to compute a tree grammar with constraints which describes the initial model of the given specification. This grammar
Formal Support to Security Protocol Development: A Survey Soporte Formal para el Desarrollo de Protocolos de Seguridad: una Visión General
, 2008
"... Security protocols aim to allow two or more principals to establish a secure communication over a hostile network, such as the Internet. The design of security protocols is particularly errorprone, because it is difficult to anticipate what an intruder may achieve interacting through a number of pr ..."
Abstract
 Add to MetaCart
Security protocols aim to allow two or more principals to establish a secure communication over a hostile network, such as the Internet. The design of security protocols is particularly errorprone, because it is difficult to anticipate what an intruder may achieve interacting through a number of protocol runs, claiming to be an honest participant. Thus, the verification of security protocols has attracted a lot of interest in the formal methods community and as a result lots of verification techniques/tools, as well as good practices for protocol design, have appeared in the two last decades. In this paper, we describe the state of the art in automated tools that support security protocol development. This mainly involves tools for protocol verification and, to a lesser extent, for protocol synthesis and protocol diagnosis and repair. Also, we give an overview of the most significant principles for the design of security protocols and of the major problems that still need to be addressed in order to ease the development of security protocols.
Induction Proofs by Program Transformations Unfold/fold Transformations
"... Unfold/fold transformations have been studied for various declarative programming languages such as functional languages [5, 12, 21], logic programming [14, 22, 23] and constraint logic programming [1, 8, 13]. Some of the most extensively studied transformation systems for logic programs are the unf ..."
Abstract
 Add to MetaCart
(Show Context)
Unfold/fold transformations have been studied for various declarative programming languages such as functional languages [5, 12, 21], logic programming [14, 22, 23] and constraint logic programming [1, 8, 13]. Some of the most extensively studied transformation systems for logic programs are the unfold/fold transformation systems. At a high level, unfold and fold transformations for definite logic programs can be viewed as follows. Definite logic programs consist of definitions of the form A: − φ where A is an atom and φ is a positive boolean formula over atoms. Unfolding replaces an occurrence of A in a program with φ while folding replaces an occurrence of φ with A. Folding is called reversible if its effects can be undone by an unfolding, and irreversible otherwise. Most of the existing work on unfold/fold transformations focus on irreversible folding transformations. p(X):q(X). q(a). q(f(X)):q(X). p(a). p(f(X)):q(X). q(a). q(f(X)):q(X). p(a). p(f(X)):p(X). q(a). q(f(X)):q(X).