Results 1 - 10
of
14
Computational Approaches to Analogical Reasoning: A Comparative Analysis
- ARTIFICIAL INTELLIGENCE
, 1989
"... Analogical reasoning has a long history in artificial intelligence research, primarily because of its promise for Ike acquisition unit effective use of knowledge. Defined as a representational mapping from a known "source " domain into a novel "target" domain, analogy provides a basic mech ..."
Abstract
-
Cited by 73 (0 self)
- Add to MetaCart
Analogical reasoning has a long history in artificial intelligence research, primarily because of its promise for Ike acquisition unit effective use of knowledge. Defined as a representational mapping from a known "source " domain into a novel "target" domain, analogy provides a basic mechanism for effectively connecting a reasoner's past and present experience. Using a four-component process model of analogical reasoning, this paper reviews sixteen computational studies of analogy. These studies are organized chronologically within broadly defined task domains of automated deduction, problem solving and planning, natural language comprehension, and machine learning. Drawing on these detailed reviews, a comparative analysis of diverse contributions to basic analogy processes identifies recurrent problems for studies of analogy and common approaches to their solution. The paper concludes by arguing that computational studies of analogy are in a slate of adolescence: looking to more mature research areas in artificial intelligence for robust accounts of basic reasoning processes and drawing upon a long tradition of research in other disciplines.
Higher-Order Horn Clauses
- JOURNAL OF THE ACM
, 1990
"... A generalization of Horn clauses to a higher-order logic is described and examined as a basis for logic programming. In qualitative terms, these higher-order Horn clauses are obtained from the first-order ones by replacing first-order terms with simply typed #-terms and by permitting quantification ..."
Abstract
-
Cited by 54 (19 self)
- Add to MetaCart
A generalization of Horn clauses to a higher-order logic is described and examined as a basis for logic programming. In qualitative terms, these higher-order Horn clauses are obtained from the first-order ones by replacing first-order terms with simply typed #-terms and by permitting quantification over all occurrences of function symbols and some occurrences of predicate symbols. Several proof-theoretic results concerning these extended clauses are presented. One result shows that although the substitutions for predicate variables can be quite complex in general, the substitutions necessary in the context of higher-order Horn clauses are tightly constrained. This observation is used to show that these higher-order formulas can specify computations in a fashion similar to first-order Horn clauses. A complete theorem proving procedure is also described for the extension. This procedure is obtained by interweaving higher-order unification with backchaining and goal reductions, and constitutes a higher-order generalization of SLD-resolution. These results have a practical realization in the higher-order logic programming language called λProlog.
A Survey and Classification of some Program Transformation Approaches and Techniques
- In TC2 IFIP Working Conference on Program Specification and Transformation
, 1987
"... Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal de ..."
Abstract
-
Cited by 40 (0 self)
- Add to MetaCart
Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal developments. Individual techniques for supporting construction of developments are also surveyed, and are related to the various approaches.
Extended ML: Past, present and future
- PROC. 7TH WORKSHOP ON SPECIFICATION OF ABSTRACT DATA TYPES, WUSTERHAUSEN. SPRINGER LNCS 534
, 1991
"... An overview of past, present and future work on the Extended ML formal program development framework is given, with emphasis on two topics of current active research: the semantics of the Extended ML specification language, and tools to support formal program development. ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
An overview of past, present and future work on the Extended ML formal program development framework is given, with emphasis on two topics of current active research: the semantics of the Extended ML specification language, and tools to support formal program development.
Description of Specification Developments
"... We propose a framework allowing to express both the incremental construction of a specification and the development process behind the construction (decisions and their rationale). The development of an example illustrates the approach. 1 Introduction The text of a specification, however structured ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
We propose a framework allowing to express both the incremental construction of a specification and the development process behind the construction (decisions and their rationale). The development of an example illustrates the approach. 1 Introduction The text of a specification, however structured or readable it is [BGM89], does not contain all the information we need to remember. Some that concerns the reasonings followed, the decisions taken during its development and their rationales has disappeared. Such knowledge, representing a deeper understanding of the specified system, is essential for a number of activities : for instance to adapt and modify the specification when the system evolves, or to reuse it for a similar system. A framework is needed to organize this information concerning the development process in which the specification language will be a parameter and the text of the specification a component. The development is formalized as a stepwise application of operators...
The Ergo Support System: An integrated set of tools for prototyping integrated environments
- School of Computer Science, Carnegie Mellon University, Pittsburgh
, 1988
"... The Ergo Support System (ESS) is an engineering framework for experimentation and prototyping to support the application of formal methods to program development, ranging from program analysis and derivation to proof-theoretic approaches. The ESS is a growing suite of tools that are linked together ..."
Abstract
-
Cited by 13 (3 self)
- Add to MetaCart
The Ergo Support System (ESS) is an engineering framework for experimentation and prototyping to support the application of formal methods to program development, ranging from program analysis and derivation to proof-theoretic approaches. The ESS is a growing suite of tools that are linked together by means of a set of abstract interfaces. The principal engineering challenge is the design of abstract interfaces that are semantically rich and yet flexible enough to permit experimentation with a wide variety of formally-based program and proof development paradigms and associated languages. As part of the design of ESS, several abstract interface designs have been developed that provide for more effective component integration while preserving flexibility and the potential for scaling. A benefit of the open architecture approach of ESS is the ability to mix formal and informal approaches in the same environment architecture. The ESS has already been applied in a number of formal methods experiments. 1
A Survey of Formal Software Development Methods
- SOFTWARE ENGINEERING
, 1988
"... This paper is a survey of the current state of the art of research on methods for formal software development. The scope of this paper is necessarily restricted so as to avoid discussion of a great many approaches at a very superficial level. First, although some of the ideas discussed below could b ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
This paper is a survey of the current state of the art of research on methods for formal software development. The scope of this paper is necessarily restricted so as to avoid discussion of a great many approaches at a very superficial level. First, although some of the ideas discussed below could be (and have been) applied to hardware development as well as to software development, this topic will not be treated here. Second, the special problems involved in the development of concurrent systems will not be discussed here although again many of the approaches mentioned below could be applied in this context. Third, no attempt is made to treat programming methodologies such as Jackson's method and program development systems such as the MIT Programmer's Apprentice which are not formally based. Finally, this survey does not claim to be fully exhaustive although an attempt has been made to cover most of the main approaches. Many of the technical details of the different approaches discussed have been glossed over or simplified for the purposes of this presentation; full details may be found in the cited references.
Infrastructure for Proof-Referencing Code
- In Proceedings, Workshop on Foundations of Secure Mobile Code
, 1997
"... We discuss ideas for using the Higher-Order Logic (HOL) theorem-proving system as an infrastructure for programs that reference or carry proofs of their correctness. Such programs, which we call Proof-Referencing Code (PRC), could be useful or even essential for applications where security of mobile ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
We discuss ideas for using the Higher-Order Logic (HOL) theorem-proving system as an infrastructure for programs that reference or carry proofs of their correctness. Such programs, which we call Proof-Referencing Code (PRC), could be useful or even essential for applications where security of mobile code is important, but where authentication is impractical and runtime checking is expensive. We propose an experiment to determine if PRC can be used to provide a flexible approach to providing security and performance in a more general context than has been shown before. Our goal is to develop a new kind of runtime system based on PRC. 1 Trust but Verify A key collection of trade-offs for mobile code concerns the over-head involved in locally executing programs that are potentially untrusted. There are three possible approaches: (1) trust anyone, (2) trust only your friends, and (3) (trust but) verify. In general the first option will make sense only when a community is small (for instan...
A Theory of Program Refinement
, 1998
"... We give a canonical program refinement calculus based on the lambda calculus and classical first-order predicate logic, and study its proof theory and semantics. The intention is to construct a metalanguage for refinement in which basic principles of program development can be studied. The idea is t ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
We give a canonical program refinement calculus based on the lambda calculus and classical first-order predicate logic, and study its proof theory and semantics. The intention is to construct a metalanguage for refinement in which basic principles of program development can be studied. The idea is that it should be possible to induce a refinement calculus in a generic manner from a programming language and a program logic. For concreteness, we adopt the simply-typed lambda calculus augmented with primitive recursion as a paradigmatic typed functional programming language, and use classical first-order logic as a simple program logic. A key feature is the construction of the refinement calculus in a modular fashion, as the combination of two orthogonal extensions to the underlying programming language (in this case, the simply-typed lambda calculus). The crucial observation is that a refinement calculus is given by extending a programming language to allow indeterminate expressions (or ‘stubs’) involving the construction ‘some program x such that P ’. Factoring this into ‘some x...’
Software as Learning: Quality Factors and Life-Cycle Revised
, 2000
"... . In this paper Software Development (SD) is understood explicitly as a learning process, which relies much more on induction than deduction, with the main goal of being predictive to requirements evolution. Concretely, classical processes from philosophy of science and machine learning such as h ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
. In this paper Software Development (SD) is understood explicitly as a learning process, which relies much more on induction than deduction, with the main goal of being predictive to requirements evolution. Concretely, classical processes from philosophy of science and machine learning such as hypothesis generation, refinement, confirmation and revision have their counterpart in requirement engineering, program construction, validation and modification in SD, respectively. Consequently, we have investigated the appropriateness for software modelling of the most important paradigms of modelling selection in machine learning. Under the notion of incremental learning, we introduce a new factor, predictiveness, as the ability to foresee future changes in the specification, thereby reducing the number of revisions. As a result, other quality factors are revised. Finally, a predictive software life cycle is outlined as an incremental learning session, which may or may not be aut...

