17693551
Analysis of functional programs to detect run-time garbage cells
We propose a method for detecting the generation of garbage cells by analyzing a source text written in a functional programming language which uses ordinary linked lists to implement list-type values. For a subexpression such as <italic>F</italic>(<italic>G</italic>( . . . )) in a program where the function values of <italic>F</italic> and <italic>G</italic> are of list type, if a cell <italic>c</italic> is created during the computation of <italic>G</italic> and if <italic>c</italic> does not appear in a list-type value of <italic>F</italic>, then <italic>c</italic> becomes a garbage cell at the end of the computation of <italic>F</italic>. We discuss this problem on the basis of formal languages derived from the functional program text and show some sufficient conditions that predict the generation of garbage cells. Also, we give an efficient algorithm to detect at compile time the generation of garbage cells which are linearly linked. We have implemented these algorithms in an experimental LISP system. By executing several sample programs on the system, we conclude that our method is effective in detecting the generation of garbage cells.
17773922
A formal adaption method for process descriptions
Requirement to describing software development processes in formal manners has been increased, and demand for altering and tailoring the process descriptions has been emerged. In this paper, we propose a functional language PDL (Process Description Language), designed to describe various development processes under a certain environment. To create and modify the PDL scripts easily and correctly, we propose a method of stepwise refinement from abstract scripts into concrete scripts. By this method, the abstract definitions of software process flow and product flow initially given as function definitions irk PDL, are transformed into the concrete definitions of the tool activations, message displays, and so on. We also discuss an architecture design of a software development environment (Adaptable Software Development Environment), which can be adapted in many ways for designer's requirements.
21621234
Implementing an action language using a SAT solver
In recent years, research on planning algorithms has made big progress. Recent approaches encode the plan search space into a data structure called the planning graph. To extract plans, a planning graph is transformed into the satisfiability problem (SAT), which is solved by a high-speed SAT solver. This kind of planning is called SAT planning. On the other hand, recent research on reasoning about action has also progressed. Since Gelfond and Lifschitz (1993) proposed the action language /spl Ascr/, a lot of work has been done to improve action languages. We combine these two approaches. Namely, we extend techniques for SAT planning to cover other aspects of reasoning about action, so that various types of queries can be answered for action languages. For this purpose, we implemented an action language processing system AMP in Java. Using this system, it becomes possible to answer queries for not only planning but model generation for a domain description written in the action language /spl Ascr/.
16061435
Relating Disjunctive Logic Programs to Default Theories
This paper presents the relationship between disjunctive logic programs and default theories. We rst show that Bidoit and Froidevaux's positivist default theory causes a problem in the presence of disjunctive information in a program. Then we present a correct transformation of disjunctive logic programs into default theories and show a one-to-one correspondence between the stable models of a program and the extensions of its associated default theory. We also extend the results to extended disjunctive programs and investigate their connections with Gelfond et al's disjunctive default theory, autoepistemic logic, and circumscription.
1157780
On the Relationship Between Non-Horn Magic Sets and Relevancy Testing
Model-generation based theorem provers such as SATCHMO and MGTP suffer from a combinatorial explosion of the search space caused by clauses irrelevant to the goal (negative clause) to be solved. To avoid this, two typical methods have been proposed. One is relevancy testing implemented in SATCHMORE by Loveland et al., and the other is non-Horn magic sets that are the extension of Horn magic sets and used for MGTP. In this paper, we define the concept of weak relevancy testing, which somewhat relaxes the relevancy testing constraint. Then, we analyze the relationship between non-Horn magic sets and weak relevancy testing in detail, and prove that the total number of interpretations generated by MGTP employing non-Horn magic sets is always the same as that by SATCHMORE using weak relevancy testing. Thus, we find that non-Horn magic sets and weak relevancy testing, although they are completely different approaches, have the same power in pruning redundant branches of a proof tree.
28280754
Embedding Negation as Failure into a Model Generation Theorem Prover
Here, for the first time, we give an implementation which computes answer sets of every class of (function-free) logic programs and deductive databases containing both negation as failure and classical negation. The proposal is based on bottom-up, incremental, backtrack-free computation of the minimal models of positive disjunctive programs, together with integrity constraints over beliefs and disbeliefs. Our translation method not only provides a simple fixpoint characterization of answer sets, but also is very helpful to understand under what conditions each model is “stable” or “unstable”. The procedure has been implemented on top of the model generation theorem prover MGTP on a parallel inference machine, and has been applied to a legal reasoning system.
780112
Disjunctive Explanations
Abductive logic programming has been widely used to declaratively specify a variety of problems in AI including updates in data and knowledge bases, belief revision, diagnosis, causal theory, and default reasoning. One of the most significant issues in abductive logic programming is to develop a reasonable method for knowledge assimilation, which incorporates obtained explanations into the current knowledge base. This paper offers a solution to this problem by considering disjunctive explanations whenever multiple explanations exist. Disjunctive explanations are then to be assimilated into the knowledge base so that the assimilated program preserves all and only minimal answer sets from the collection of all possible updated programs. We describe a new form of abductive logic programming which deals with disjunctive explanations in the framework of extended abduction. The proposed framework can be well applied to view updates in disjunctive databases.