A theorem prover MGTP is known as one of the main results of the Fifth Generation Computer Project in 80's. MGTP is based on model generation that is considered suitable for implementing high performance provers on a parallel inference machine (PIM). This article overviews several improvements, extensions, applications, and current research topics of MGTP.
In 1988, simultaneously with the start of the human genome sequencing project, the research group of genetic information processing was formed in the fifth generation processing project, as one of applications suitable for logic programming. After passing 20 years, knowledge engineering is now getting a lot of attention, toward the analysis of ever-increasing OMICS data including genome, transcriptome, proteome and metabolome. A new knowledge processing framework is strongly demanded for the systematization of OMICS data from the viewpoints of medical science, pharmaceutical science, genetics, biochemistry and so on. This paper discusses such framework covering genome and logic, taking drug interaction prediction as an example.
Horn logic programs on which Prolog is based have a restriction in the syntax of programs, where only definite knowledge can be represented. This limitation does not enable us to represent incomplete and indefinite knowledge in logic programs. To overcome this problem, several extended classes of logic programs have been proposed since late in the 1980s. Among them, answer set programming launched out into the new paradigm of logic programming in 1999, in which a logic program represents the constraints of a problem and its answer sets correspond to the solutions of the problem. Answer set programming has grown into one of the most popular research fields in logic programming. In this article, we review the essentials of answer set programming from the past to the future.
Equational inference is the most fundamental inference mechanism for CafeOBJ algebraic specification language. Term rewriting system can realize equational inference in an efficient way. Several pieces of fundamental knowledge on term rewriting systems, which are valuable for CafeOBJ specification development, are described. We present the ways to describe specifications which satisfies fundamental properties of term rewriting systems: termination, confluence and sufficient completeness properties, and also discuss about applications to specifications including associative and/or commutative operators, conditional equations, and so on.
For compiler developers, one big issue is how to describe a specification of its intermediate representation (IR), which consists of various entities like symbol tables, syntax trees, analysis information and so on. As IR is a central data structure of a compiler, its precise specification is always strongly desired. However, the formalization of an actual IR is not an easy task since it tends to be large, has complex interdependency between its entities, and depends on a specific implementation language. In this paper, as a first step to solve this problem, we propose a new data model for IR, called IIR. The goal of IIR is to describe a specification of IR declaratively without depending on its concrete implementation detail. The main idea is to model all entities of IR as relations with explicit identifiers. By this, we can develop an IR model transliterally from an actual IR, and describe its specification by using the full expressiveness of conventional logic languages. The specification is inherently executable and can be used to check the validity of IR in compile time. As a practical case study, we formalized an IR of our production compiler in IIR, and developed a type system for it in Prolog. Experimental results about size and performance are shown.
Separation logic is an extension of Hoare logic to verify imperative programs with pointers and mutable data-structures. Although there exist several implementations of verifiers for separation logic, none of them has actually been itself verified. In this paper, we present a verifier for a fragment of separation logic that is verified inside the Coq proof assistant. This verifier is implemented as a Coq tactic by reflection to verify separation logic triples. Thanks to the extraction facility to OCaml, we can also derive a certified, stand-alone and efficient verifier for separation logic.
In 2003, we have defined a strong probabilistic timed simulation relation of probabilistic timed automata, which is given by the combination of a strong timed simulation relation and a probabilistic simulation relation. Also, we have shown that a strong probabilistic timed simulation relation of probabilistic timed automata is decidable. But we didn't give the algorithm. In this paper, we propose a concrete algorithm M and implement the algorithm. As the verification cost of real-time systems is very high, we propose the following algorithm: In the algorithm M, counter examples such as pairs of states, which do not satisfy the conditions of a strong probabilistic timed simulation relation, are gradually removed from the initial set, and finally judge whether one probabilistic timed automaton simulates another or not.
Software component retrieval technique is one of the keys for CBSD (Component Based Software Development). In this paper, we propose a software component retrieval method based on test-execution, which evaluates component behaviors by adapting components to a test program and executing it. Our method is superior in precision than text-based retrieval methods. In addition, our method is inexpensive in running cost than formal specification-based retrieval methods because our component repository is constructed without adding any extra description to the components. We implement our method as a system named CORST-J (COmponent Retrieval System based on Test-execution for Java). Through CORST-J experiments, we confirm that our method is superior to conventional methods from the viewpoints of precision and running cost.