JP5660503B2 - Consistency inspection device, consistency inspection method, and program - Google Patents

Consistency inspection device, consistency inspection method, and program Download PDF

Info

Publication number
JP5660503B2
JP5660503B2 JP2011193452A JP2011193452A JP5660503B2 JP 5660503 B2 JP5660503 B2 JP 5660503B2 JP 2011193452 A JP2011193452 A JP 2011193452A JP 2011193452 A JP2011193452 A JP 2011193452A JP 5660503 B2 JP5660503 B2 JP 5660503B2
Authority
JP
Japan
Prior art keywords
information
node
inspection
case
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011193452A
Other languages
Japanese (ja)
Other versions
JP2013054616A (en
Inventor
誠 武山
誠 武山
佳樹 木下
佳樹 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2011193452A priority Critical patent/JP5660503B2/en
Publication of JP2013054616A publication Critical patent/JP2013054616A/en
Application granted granted Critical
Publication of JP5660503B2 publication Critical patent/JP5660503B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、整合性の検査対象であるケースの整合性を検査する整合性検査装置等に関する。   The present invention relates to a consistency inspection apparatus for inspecting consistency of a case that is a consistency inspection target.

プラントや飛行機、鉄道、大組織の情報処理システム等のシステムが問題なく動くように設計・構築されることは重要である。しかしながら、そのような複雑なシステムでは、場合分けの数が非常に多くなることがあり、また、各動作等の項目同士が複雑に絡まり合うことがある。したがって、そのような複雑なシステムでは、期待される動作を網羅したのかどうかを確かめることが難しいこともあった。その結果、そのシステムを問題なく設計・構築することは、困難な課題であった。一方、膨大な数の項目のうち、たった一つに関する異常を見落とすことにより、その影響がシステム全体に及び、人命や組織に甚大な影響を及ぼす可能性があるという問題もあった。   It is important that systems such as plants, airplanes, railways, and large-scale information processing systems are designed and constructed so that they can operate without problems. However, in such a complicated system, the number of cases may be very large, and items such as each operation may be complicatedly entangled. Therefore, in such a complex system, it may be difficult to confirm whether or not the expected operation is covered. As a result, it has been a difficult task to design and build the system without problems. On the other hand, there is also a problem that, by overlooking an abnormality related to only one of a huge number of items, the influence may affect the entire system, and may greatly affect human lives and organizations.

近年、そのようなシステムに関して、ありうる問題と、その問題への対処とを共有するための文書として、アシュランス・ケース(assurance case)と呼ばれる形式の文書を作成することが行われてきている。そのアシュランス・ケースは、システムの信頼性や安全性等の検討結果を示す文書である。したがって、上述したシステムに関する課題は、アシュランス・ケースに関する正確性の課題に帰着する。なお、構造を明示することによって、アシュランス・ケースを厳密かつ明快に記述する方法として、GSN(Goal Structuring Notation)という方法が用いられている。そのGSNでは、アシュランス・ケースを、ゴール(Goal)、ストラテジ(Strategy)、エビデンス(Evidence)、コンテキスト(Context)、未達成ゴール(Undeveloped Goal)であるノードをつないだ有向非巡回グラフの構造で記述する(例えば、非特許文献1参照)。   In recent years, as a document for sharing a possible problem and a countermeasure for the problem with such a system, it has been made to create a document of a type called an “assurance case”. . The Assurance case is a document that shows the results of studies on the reliability and safety of the system. Therefore, the above-mentioned problems related to the system result in accuracy problems related to the assurance case. Note that a method called GSN (Goal Structure Notation) is used as a method of describing the Assurance case strictly and clearly by specifying the structure. In the GSN, the Assurance case is a structure of a directed acyclic graph that connects nodes that are Goals, Strategies, Evidence, Contexts, and Undeveloped Goals. (For example, see Non-Patent Document 1).

Tim Kelly,Rob Weaver、「The Goal Structuring Notation−A Safety Argument Notation」、In DSN−2004:Proceedings of the Dependable Systems and Networks 2004 Workshop on Assurance Cases、2004年Tim Kelly, Rob Weaver, “The Goal Structure Notation-A Safe Argment Notation”, In DSN-2004: Processed of the Dependable Systems 200

しかしながら、アシュランス・ケースは、通常、何万ページにもなる膨大な文書であり、文書の整合性があちらこちらで破れてしまうことがあった。また、その整合性の検査を人手で行うのは非常に困難である。さらに、アシュランス・ケースは前述のように、プラントや飛行機等の種々のものを対象とするため、一のアシュランス・ケースを検査するための専用のソフトウェアを開発したとしても、それによって他のアシュランス・ケースを検査できないこともある。そのような場合には、アシュランス・ケースの対象ごとに検査のソフトウェアを開発する必要があり、コストが多大になる。また、アシュランス・ケースの表記方法が変更された場合には、それに応じて、その検査のためのソフトウェアも変更しなければならないという問題もある。
一般的に言えば、アシュランス・ケースのような整合性の検査対象であるケースの整合性を、汎用性の高い方法で精度よく自動的に検査することが求められていた。
However, the Assurance case is usually a huge document with tens of thousands of pages, and the integrity of the document may be broken here and there. Further, it is very difficult to manually check the consistency. Furthermore, as mentioned above, since the Assurance case targets various things such as plants and airplanes, even if special software for inspecting one Assurance case is developed, You may not be able to inspect the Assurance case. In such a case, it is necessary to develop inspection software for each subject of the Assurance case, which increases the cost. In addition, when the notation method of the Assurance case is changed, there is a problem that the software for the inspection must be changed accordingly.
Generally speaking, it has been required to accurately and accurately inspect the consistency of a case that is a consistency inspection target such as an Assurance case by a highly versatile method.

本発明は、上記課題を解決するためになされたものであり、整合性の検査対象であるケースの整合性を自動的に検査することができる整合性検査装置等を提供することを目的とする。   The present invention has been made to solve the above-described problems, and an object thereof is to provide a consistency inspection apparatus and the like that can automatically inspect the consistency of a case that is a consistency inspection target. .

上記目的を達成するため、本発明による整合性検査装置は、目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとを含む有向非巡回グラフの構造を有する、整合性の検査対象であるケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報であり、証明検査の対象となる人工言語により記述された情報である検査対象情報が記憶される検査対象記憶部と、検査対象情報に対して証明検査を行う検査部と、検査部による証明検査の結果を出力する検査結果出力部と、を備えたものである。
このような構成により、整合性の検査対象であるケースを人工言語によって記述することにより、証明検査によって自動的に検査することができるようになる。したがって、検査対象が膨大な量であったとしても、その検査を容易に行うことができる。また、その検査を証明検査、すなわち、定理証明支援系によるプルーフチェッカーによる検査によって行うため、検査のためのソフトウェアを独自に開発する必要もなく、汎用性の高い方法で検査を行うことができる。
In order to achieve the above object, the consistency check apparatus according to the present invention decomposes a goal node corresponding to an object, an evidence node corresponding to a basis for proving the object, and one goal node into one or more goal nodes. Cases that have a directed acyclic graph structure including a strategy node that is to be checked for consistency are described using a term corresponding to each node and an operator corresponding to the parent-child relationship of each node. By a test object storage unit that stores test target information, which is information described in an artificial language that is a target of certification test, a test unit that performs proof test on the test target information, and a test unit An inspection result output unit for outputting a result of the certification inspection.
With such a configuration, it is possible to automatically inspect by the certification inspection by describing the case to be inspected for consistency in an artificial language. Therefore, even if the inspection target is a huge amount, the inspection can be easily performed. In addition, since the inspection is performed by proof inspection, that is, inspection by a proof checker using a theorem proof support system, it is not necessary to independently develop inspection software, and the inspection can be performed by a highly versatile method.

また、本発明による整合性検査装置では、検査対象情報は、検査対象情報に含まれる各項の定義を含むモデル情報と、検査対象情報に対応する有向非巡回グラフの構造を示す議論構造情報とを有してもよい。   Further, in the consistency check device according to the present invention, the check target information includes model information including definitions of each item included in the check target information, and discussion structure information indicating a structure of a directed acyclic graph corresponding to the check target information. You may have.

また、本発明による整合性検査装置では、検査対象情報に対応する有向非巡回グラフの各ノードと、ノード間の親子関係とを示す情報であり、整合性の検査対象であるケースの情報であるグラフ情報が記憶されるグラフ記憶部と、グラフ情報の各ノードの親子関係のパターンに応じて、グラフ情報の各ノードを項に変換し、各ノードの親子関係を演算子に変換し、変換後の検査対象情報を検査対象記憶部に蓄積する翻訳部と、をさらに備えてもよい。
このような構成により、グラフを用いて記述されたケースを検査対象情報に変換し、証明検査を行うことができるようになる。したがって、例えば、人工言語に不慣れな者であっても、人工言語よりも扱いやすいグラフを用いて整合性の検査対象であるケースを記述することによって、そのケースに応じた証明検査の結果を得ることができるようになる。
Further, in the consistency check device according to the present invention, it is information indicating each node of the directed acyclic graph corresponding to the check target information and the parent-child relationship between the nodes, and information on a case that is a check target of the consistency. Depending on the graph storage unit that stores the graph information and the parent-child relationship pattern of each node of the graph information, each node of the graph information is converted into a term, and the parent-child relationship of each node is converted into an operator and converted And a translation unit that accumulates later inspection target information in the inspection target storage unit.
With such a configuration, a case described using a graph can be converted into inspection object information and a proof inspection can be performed. Therefore, for example, even a person who is unfamiliar with an artificial language can obtain a result of a proof test corresponding to the case by describing the case that is the subject of the consistency check using a graph that is easier to handle than the artificial language. Will be able to.

また、本発明による整合性検査装置では、有向非巡回グラフには、整合性の検査対象であるケースに関する文脈情報に対応するコンテキストノードがさらに含まれ、検査対象情報に対応する有向非巡回グラフの各ノードと、ノード間の親子関係とを示す情報であり、整合性の検査対象であるケースの情報であるグラフ情報が記憶されるグラフ記憶部と、検査対象情報を、項と演算子とのパターンに応じて、検査対象情報の各項をノードに変換し、各演算子を各ノードの親子関係に変換し、変換後のグラフ情報をグラフ記憶部に蓄積する翻訳部と、をさらに備えてもよい。
このような構成により、検査対象情報をグラフ情報に変換することができる。したがって、人工言語で記述されたケースを、視覚的に理解しやすいグラフ情報で見ることができるようになる。
In the consistency check apparatus according to the present invention, the directed acyclic graph further includes a context node corresponding to context information relating to a case that is a consistency check target, and a directed acyclic graph corresponding to the check target information. Information indicating each node of the graph and the parent-child relationship between the nodes, a graph storage unit for storing graph information that is information of a case that is a consistency check target, a check target information, a term and an operator A translation unit that converts each item of the inspection object information into a node, converts each operator into a parent-child relationship of each node, and accumulates the converted graph information in the graph storage unit You may prepare.
With such a configuration, the inspection object information can be converted into graph information. Therefore, the case described in the artificial language can be seen with the graph information that is easy to understand visually.

また、本発明による整合性検査装置では、人工言語は、構成的型理論に基づく人工言語であってもよい。
このような構成により、その人工言語で記述されたケース自体をプログラムとして実行することもできるようになる。
In the consistency checking device according to the present invention, the artificial language may be an artificial language based on a constructive type theory.
With such a configuration, the case itself described in the artificial language can be executed as a program.

また、本発明による整合性検査装置では、検査部による証明検査によって、エラーのないことが検査された検査対象情報を実行する実行部をさらに備えてもよい。   The consistency inspection apparatus according to the present invention may further include an execution unit that executes inspection target information that has been inspected for errors by proof inspection by the inspection unit.

また、本発明による整合性検査装置では、実行部は、検査対象情報を実行することにより、検査対象情報から、整合性の検査対象であるケースの各ノードに応じた項と、各ノードの親子関係に応じた演算子とを陽に記述する形式の検査対象情報を生成してもよい。
このような構成により、翻訳の前に、あるいは、翻訳中に、検査対象情報を項や演算子を陽に記述した形式に変換することによって、検査対象情報をグラフ情報に変換することができるようになる。
In the consistency inspection apparatus according to the present invention, the execution unit executes the inspection target information, so that the item corresponding to each node of the case that is the consistency inspection target and the parent and child of each node are obtained from the inspection target information. Inspection target information in a format that explicitly describes an operator according to the relationship may be generated.
With such a configuration, it is possible to convert the inspection target information into graph information by converting the inspection target information into a format in which terms and operators are explicitly described before or during translation. become.

また、本発明による整合性検査装置では、検査対象記憶部では、検査対象情報をグラフ情報に変換する処理に応じた変換プログラムも記憶され、翻訳部は、変換プログラムを実行することによって、検査対象情報をグラフ情報に変換してもよい。
このような構成により、その変換プログラムによって、翻訳部による情報の変換が実現されるようになる。
In the consistency inspection apparatus according to the present invention, the inspection object storage unit also stores a conversion program according to the process of converting the inspection object information into the graph information, and the translation unit executes the conversion program to thereby inspect the inspection object. Information may be converted into graph information.
With such a configuration, conversion of information by the translation unit is realized by the conversion program.

また、本発明による整合性検査装置では、検査対象情報と変換プログラムとは、構成的型理論に基づく同じ人工言語で記述されていてもよい。
このような構成により、変換プログラム自体についても、証明検査の対象とすることができ、検査済の変換プログラムによって、変換の処理を行うことができるようになる。
Further, in the consistency checking device according to the present invention, the inspection target information and the conversion program may be described in the same artificial language based on the structural type theory.
With such a configuration, the conversion program itself can be the subject of certification inspection, and conversion processing can be performed by the inspected conversion program.

また、本発明による整合性検査装置では、検査対象情報の項は、メタ変数を含むものであり、人工言語は、対話型証明支援系の人工言語であってもよい。
このような構成により、メタ変数を含む検査対象情報(例えば、作成途中の検査対象情報)であっても、その段階で証明検査を行うことができる。その結果、その段階において、検査対象情報が適切に構成されているかどうかを確認することができる。
In the consistency checking device according to the present invention, the term of the inspection target information includes a meta variable, and the artificial language may be an artificial language of an interactive proof support system.
With such a configuration, even for inspection object information including meta variables (for example, inspection object information being created), a certification inspection can be performed at that stage. As a result, at that stage, it can be confirmed whether or not the inspection object information is appropriately configured.

本発明による整合性検査装置等によれば、アシュランス・ケースなどの整合性の検査対象であるケースの整合性を、証明検査によって検査することができる。したがって、汎用性の高い方法によって精度よく自動的に検査することができる。   According to the consistency inspection apparatus and the like according to the present invention, the consistency of a case to be inspected for consistency, such as an assurance case, can be inspected by a certification inspection. Therefore, it is possible to automatically inspect with high accuracy by a highly versatile method.

本発明の実施の形態1による整合性検査装置の構成を示すブロック図The block diagram which shows the structure of the consistency inspection apparatus by Embodiment 1 of this invention. 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態による整合性検査装置の動作を示すフローチャートThe flowchart which shows operation | movement of the consistency inspection apparatus by the embodiment 同実施の形態におけるケース及びアーギュメントの構造について説明するための図The figure for demonstrating the structure of the case and argument in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態におけるグラフ情報の一例を示す図The figure which shows an example of the graph information in the embodiment 同実施の形態におけるグラフ情報の一例を示す図The figure which shows an example of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報に取り込まれる情報の一例を示す図The figure which shows an example of the information taken in into inspection object information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報に取り込まれる情報の一例を示す図The figure which shows an example of the information taken in into inspection object information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるエラーの表示の一例を示す図The figure which shows an example of the display of the error in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるエラーの表示の一例を示す図The figure which shows an example of the display of the error in the embodiment 同実施の形態におけるグラフ情報の表示の一例を示す図The figure which shows an example of the display of the graph information in the embodiment 同実施の形態における検査対象情報の一例を示す図The figure which shows an example of the test object information in the embodiment 同実施の形態におけるエラーの表示の一例を示す図The figure which shows an example of the display of the error in the embodiment 同実施の形態におけるコンピュータシステムの外観一例を示す模式図Schematic diagram showing an example of the appearance of the computer system in the embodiment 同実施の形態におけるコンピュータシステムの構成の一例を示す図The figure which shows an example of a structure of the computer system in the embodiment

以下、本発明による整合性検査装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。   Hereinafter, a consistency inspection apparatus according to the present invention will be described using embodiments. In the following embodiments, components and steps denoted by the same reference numerals are the same or equivalent, and repetitive description may be omitted.

(実施の形態1)
本発明の実施の形態1による整合性検査装置について、図面を参照しながら説明する。本実施の形態による整合性検査装置は、人工言語で記述された、整合性の検査対象であるケースに対して、証明検査を行うことによって、そのケースの整合性を検査する。
(Embodiment 1)
A consistency inspection apparatus according to Embodiment 1 of the present invention will be described with reference to the drawings. The consistency checking device according to the present embodiment checks the consistency of a case described in an artificial language by performing a proof check on the case to be checked for consistency.

図1は、本実施の形態による整合性検査装置1の構成を示すブロック図である。本実施の形態による整合性検査装置1は、検査対象記憶部11と、検査部12と、検査結果出力部13と、実行部14と、グラフ記憶部15と、翻訳部16と、表示部17と、受付部18とを備える。   FIG. 1 is a block diagram showing a configuration of a consistency inspection apparatus 1 according to this embodiment. The consistency inspection apparatus 1 according to the present embodiment includes an inspection object storage unit 11, an inspection unit 12, an inspection result output unit 13, an execution unit 14, a graph storage unit 15, a translation unit 16, and a display unit 17. And a reception unit 18.

検査対象記憶部11では、検査対象情報が記憶される。検査対象情報は、整合性の検査対象であるケースを、証明検査の対象となる人工言語により記述した情報である。整合性の検査対象であるケースは、例えば、前述のアシュランス・ケースやセーフティー・ケースなどであってもよく、それ以外のケースであってもよい。そのケースは、複数のノードを含む有向非巡回グラフの構造を有するものである。その構造に現れ得る複数のノードの種類には、少なくとも、目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとが含まれる。その複数のノードには、整合性の検査対象であるケースに関する文脈情報に対応するコンテキストノードがさらに含まれてもよい。また、その複数のノードには、証明がまだなされていない未達成ゴールがさらに含まれてもよい。本実施の形態では、整合性の検査対象であるケースが、ゴールノード、ストラテジノード、エビデンスノード、及び、コンテキストノードを有する場合について主に説明する。有向非巡回グラフの構造に含まれる各ノードは、有向非巡回グラフの構造を有するように接続されているため、各ノードは、単数または複数の親ノードを有することになる。但し、非巡回であるため、親の方向、または、子の方向にノードをたどった場合に、元のノードに戻ることはないものとする。その有向非巡回グラフの構造では、ルートノードが単数であってもよく、または、複数であってもよい。本実施の形態の以下の説明では、有向非巡回グラフのルートノードが単数であるとする。なお、ルートノードが単数でない有向非巡回グラフは、通常、ルートノードが単数である複数の有向非巡回グラフに分けて考えることが可能である。ルートノードが複数である有向非巡回グラフは、ルートノードが単数である2以上の有向非巡回グラフの組み合わせであると考えることもできる。また、そのルートノードが単数である有向非巡回グラフは、例えば、木構造であってもよく、または、そうでなくてもよい。木構造である場合には、各ノードは、単数の親ノードを有することになる。本実施の形態では、有向非巡回グラフが木構造である場合について主に説明する。その有向非巡回グラフは、ルートノードであるゴールノード(このゴールノードを「トップゴールノード」と呼ぶこともある)を、単数または複数の他のゴールノード(このゴールノードを「サブゴールノード」と呼ぶこともある)に分解し、リーフノードであるエビデンスノードに至るものである。GSNで知られているように、通常、トップゴールノードが複数のサブゴールノードに分解され、それが繰り返されて、最終的に最もリーフ側のサブゴールノードがエビデンスノードによって証明されることになる。したがって、各サブゴールノードが証明されたことになり、その結果、トップゴールノードが証明されたことになる。なお、通常、単数のゴールノードが、複数のゴールノードに分解される際に、ストラテジノードによって分解されることになる。また、エビデンスノードに至るリーフ側の構造が確定されていないゴールノードは、未達成ゴールノードとなる。また、整合性の検査対象であるケース全体の文脈情報、または、そのケースの一部の文脈情報が、コンテキストノードにより示される。   The inspection object storage unit 11 stores inspection object information. The inspection target information is information in which a case that is a consistency inspection target is described in an artificial language that is an object of certification inspection. The case to be inspected for consistency may be, for example, the aforementioned assurance case or safety case, or other cases. The case has a structure of a directed acyclic graph including a plurality of nodes. The types of nodes that can appear in the structure are at least a goal node corresponding to the purpose, an evidence node corresponding to the basis for verifying the purpose, and one goal node broken down into one or more goal nodes Strategy nodes are included. The plurality of nodes may further include a context node corresponding to context information regarding a case to be checked for consistency. The plurality of nodes may further include unachieved goals that have not yet been proved. In the present embodiment, a case where a case that is a consistency check target has a goal node, a strategy node, an evidence node, and a context node will be mainly described. Since each node included in the structure of the directed acyclic graph is connected to have the structure of the directed acyclic graph, each node has one or a plurality of parent nodes. However, since it is acyclic, when a node is traced in the parent direction or the child direction, it does not return to the original node. In the directed acyclic graph structure, the root node may be singular or plural. In the following description of the present embodiment, it is assumed that there is a single root node in the directed acyclic graph. Note that a directed acyclic graph with a single root node can be considered by dividing it into a plurality of directed acyclic graphs with a single root node. A directed acyclic graph having a plurality of root nodes can be considered as a combination of two or more directed acyclic graphs having a single root node. Also, the directed acyclic graph having a single root node may be, for example, a tree structure or not. In the case of a tree structure, each node has a single parent node. In the present embodiment, the case where the directed acyclic graph has a tree structure will be mainly described. In the directed acyclic graph, a goal node that is a root node (this goal node may be referred to as a “top goal node”) is used as one or more other goal nodes (this goal node is referred to as a “subgoal node”). It may be called) to reach the evidence node that is a leaf node. As known in the GSN, the top goal node is usually decomposed into a plurality of subgoal nodes, which are repeated, and finally the leaf-side subgoal node is proved by the evidence node. Therefore, each subgoal node is proved, and as a result, the top goal node is proved. Normally, when a single goal node is decomposed into a plurality of goal nodes, it is decomposed by the strategy node. In addition, a goal node whose leaf-side structure leading to the evidence node is not determined is an unachieved goal node. Further, context information of the entire case to be checked for consistency or partial context information of the case is indicated by the context node.

検査対象情報は、その複数のノードを含む有向非巡回グラフの構造を有するケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報である。また、その検査対象情報は、前述のように、証明検査の対象となる人工言語により記述された情報である。その人工言語は、証明検査を行うことができる人工言語である。また、その人工言語は、構成的型理論に基づく人工言語であってもよく、または、そうでなくてもよい。本実施の形態では、その人工言語が構成的型理論に基づく人工言語である場合について主に説明する。そのような人工言語として、例えば、AgdaやCoq、NuPRL等が知られている。本実施の形態では、構成的型理論に基づく人工言語がAgdaである場合について主に説明する。また、検査対象情報は、検査対象情報に含まれる各項の定義を含むモデル情報と、検査対象情報に対応する有向非巡回グラフの構造を示す議論構造情報とを有する情報であってもよい。本実施の形態では、主にその場合について説明する。議論構造情報は、整合性の検査対象であるケースにおける各ノードの親子関係を人工言語によって記述した情報である。モデル情報は、例えば、そのモデル情報の全部が議論構造情報に含まれない情報であってもよく、そのモデル情報の全部が議論構造情報に含まれてもよく、または、そのモデル情報の一部が議論構造情報に含まれてもよい。以下、モデル情報のうち、議論構造情報に含まれる情報を局所モデル情報と呼び、議論構造情報に含まれない情報を大局モデル情報と呼ぶこともある。したがって、モデル情報は、そのすべてが大局モデル情報であってもよく、そのすべてが局所モデル情報であってもよく、または、大局モデル情報と局所モデル情報とを含んでいてもよい。また、検査対象情報に含まれる議論構造情報は、具体的な有向非巡回グラフの構造に応じた議論構造情報の生成関数(生成プログラム)と、引数の値とを含む情報であってもよい。その場合には、議論構造情報そのものによっては、ノードの具体的な親子関係が示されないが、その議論構造情報に含まれる引数の値を、その議論構造情報に含まれる生成関数に適用して、その生成関数を実行することによって、具体的な有向非巡回グラフの構造に応じた議論構造情報が生成されることになるため、実質的に、ノードの具体的な親子関係を示す議論構造情報が与えられた場合と同様であると考えることができる。その具体的な有向非巡回グラフの構造に応じた議論構造情報とは、整合性の検査対象であるケースの各ノードに応じた項と、各ノードの親子関係に応じた演算子とを陽に記述する形式の議論構造情報である。なお、その生成関数の実行は、実行部14によって行われる。また、検査対象情報には、証明検査において用いる情報に関する実行プログラムが含まれていてもよい。その場合には、証明検査が行われる際に、その実行プログラムが実行され、その実行結果を用いて証明検査が行われることになる。その実行結果は、例えば、その時点で得られた情報であってもよく、または、その他の情報であってもよい。具体的には、その実行プログラムが実行されることによって、その時点における値(例えば、温度や圧力、センサの値等)が取得され、それを用いて証明検査が行われることになってもよい。なお、その実行プログラムの実行は、実行部14によって行われる。   The inspection target information is information in which a case having a directed acyclic graph structure including a plurality of nodes is described using a term corresponding to each node and an operator corresponding to the parent-child relationship of each node. is there. Further, the inspection object information is information described in an artificial language that is the object of the certification inspection as described above. The artificial language is an artificial language that can perform a proof test. The artificial language may or may not be an artificial language based on constructive type theory. In the present embodiment, the case where the artificial language is an artificial language based on constructive type theory will be mainly described. As such an artificial language, for example, Agda, Coq, NuPRL and the like are known. In the present embodiment, the case where the artificial language based on the constructive type theory is Agda will be mainly described. Further, the inspection target information may be information including model information including definitions of each item included in the inspection target information and discussion structure information indicating a structure of a directed acyclic graph corresponding to the inspection target information. . In this embodiment, the case will be mainly described. The discussion structure information is information in which the parent-child relationship of each node in the case of the consistency check target is described in an artificial language. The model information may be, for example, information in which all of the model information is not included in the discussion structure information, all of the model information may be included in the discussion structure information, or a part of the model information. May be included in the discussion structure information. Hereinafter, of the model information, information included in the discussion structure information may be referred to as local model information, and information not included in the discussion structure information may be referred to as global model information. Therefore, all of the model information may be global model information, all of which may be local model information, or may include global model information and local model information. Further, the discussion structure information included in the examination target information may be information including a generation function (generation program) of argument structure information corresponding to the structure of a specific directed acyclic graph and an argument value. . In that case, the specific parent-child relationship of the node is not shown depending on the argument structure information itself, but the argument value included in the argument structure information is applied to the generation function included in the argument structure information, By executing the generation function, discussion structure information corresponding to the structure of the specific directed acyclic graph is generated, so the discussion structure information that actually indicates the specific parent-child relationship of the nodes Can be considered to be the same as given. The discussion structure information corresponding to the structure of the specific directed acyclic graph is obtained by explicitly including a term corresponding to each node of the case to be checked for consistency and an operator corresponding to the parent-child relationship of each node. Is the discussion structure information in the format described in. Note that the execution function 14 executes the generation function. Further, the inspection target information may include an execution program related to information used in the certification inspection. In that case, when the proof check is performed, the execution program is executed, and the proof check is performed using the execution result. The execution result may be, for example, information obtained at that time or other information. Specifically, by executing the execution program, values at the time (for example, temperature, pressure, sensor values, etc.) may be acquired, and proof inspection may be performed using them. . Note that the execution program 14 is executed by the execution unit 14.

ここで、検査対象情報によって記述されるケースの構造について簡単に説明する。図9(a)で示されるように、一のケースは、ルートノードであるゴールノードと、そのゴールノードの子である部分木構造であるアーギュメントとを有するか、または、ゴールノードをルートノードとする部分ケースと、そのゴールノードを親とするコンテキストノードとを有する。なお、アーギュメントは、図9(b)で示されるように、ルートノードであるストラテジノードと、そのストラテジノードの子である1以上のケースとを有するか、エビデンスノードそのものであるか、または、ストラテジノードをルートノードとする部分アーギュメントと、そのストラテジノードを親とするコンテキストノードとを有する。なお、子ノードであるケースを有しないストラテジノードは、エビデンスノードと同じであるが、本実施の形態では、そのようなストラテジノードをエビデンスノードとして扱う。整合性の検査対象となるケースは図9で示される構造を有しているため、前述のように、ゴールノードと、ストラテジノードと、エビデンスノードと、コンテキストノードとの親子関係によって記述することができる。なお、図9では、ケースが木構造である場合について説明したが、前述のように、ケースは有向非巡回グラフであってもよい。したがって、その場合には、例えば、エビデンスノードが2以上の親ノードを有してもよい。   Here, the structure of the case described by the inspection object information will be briefly described. As shown in FIG. 9A, one case has a goal node that is a root node and an argument that is a sub-tree structure that is a child of the goal node, or the goal node is a root node. And a context node whose parent is the goal node. As shown in FIG. 9B, the argument has a strategy node that is a root node and one or more cases that are children of the strategy node, is an evidence node itself, or is a strategy. It has a partial argument whose node is the root node and a context node whose parent is the strategy node. A strategy node that does not have a case that is a child node is the same as an evidence node. However, in the present embodiment, such a strategy node is treated as an evidence node. Since the case to be checked for consistency has the structure shown in FIG. 9, it can be described by the parent-child relationship of the goal node, strategy node, evidence node, and context node as described above. it can. In addition, although the case where the case has a tree structure has been described in FIG. 9, as described above, the case may be a directed acyclic graph. Therefore, in that case, for example, the evidence node may have two or more parent nodes.

次に、図9で示されるケースを構成的型理論に基づく人工言語であるAgdaにより記述する場合における検査対象情報について、拡張バッカス・ナウア記法(Extended Backus−Naur Form、EBNF;ISO/IEC 14977:1996)に準じた記法を用いて説明する。ケース、アーギュメント、ゴール、ストラテジ、エビデンス、コンテキストそれぞれのAgda表記の範疇を、Case,Argument,Goal,Strategy,Evidence,Contextと表記するものとする。すると、図9(a)に対応して、Caseは次のように記述される。   Next, with respect to the information to be examined when the case shown in FIG. 9 is described in Agda, which is an artificial language based on the constructive type theory, the extended Backus-Nau Form (EBNF; ISO / IEC 14977: 1996). The categories of cases, arguments, goals, strategies, evidences, and contexts of Agda are represented as Case, Argent, Goal, Strategy, Evidence, and Context. Then, Case is described as follows, corresponding to FIG.

Case::=Goal∋Argument
|CONTEXT[Context/Case]
Case :: = Goal∋Argent
| CONTEXT [Context / Case]

なお、「::=」は、左辺の範疇のものは右辺のように構成されることを示すEBNFの記法であり、「|」は、「または」を示す記法である。上の式の場合、一のCaseは、一のGoal「g」と一のArgument「a」から「g∋a」として構成されるか、または、一のContext「s」と一のCase「d」から「CONTEXT[s/d]」として構成されるかであることを示している。また、図9(b)に対応して、Argumentは次のように記述される。   Note that “:: =” is an EBNF notation that indicates that the category on the left side is configured as the right side, and “|” is a notation indicating “or”. In the case of the above formula, one Case is configured as “g「 a ”from one Goal“ g ”and one Argon“ a ”, or one Context“ s ”and one Case“ d ”. To “CONTEXT [s / d]”. Also, corresponding to FIG. 9B, the Argent is described as follows.

Argument::=Strategy・Case
|Evidence
|CONTEXT[Context/Argument]
Argent :: = Strategy { · Case }
| Evidence
| CONTEXT [Context / Argent]

ここで、 は、0以上の繰り返しを示すEBNFの記法である。また、「∋」、「・」、またはCONTEXT[ / ]は、演算子である。また、Goal,Strategy,Evidence,Contextは項である。したがって、各ノードの親子関係で示されるケースと、そのケースを人工言語で記述した検査対象情報とは、上述のようにして対応付けられるため、任意のケースを人工言語(この場合にはAgda)を用いて記述することができるようになる。 Here, { } is an EBNF notation indicating repetition of 0 or more. “∋”, “•”, or CONTEXT [/] is an operator. Further, Goal, Strategy, Evidence, and Context are terms. Therefore, since the case indicated by the parent-child relationship of each node and the inspection object information describing the case in the artificial language are associated as described above, an arbitrary case can be associated with the artificial language (in this case, Agda). Can be described using.

また、上述した各演算子の定義について簡単に説明する。まず、「∋」のAgdaでの定義は次の二行のようになる。
_∋_:(A:Set)→(a:A)→A
A∋a=a
The definition of each operator described above will be briefly described. First, the definition of “∋” in Agda is as shown in the following two lines.
_∋_: (A: Set) → (a: A) → A
A∋a = a

したがって、Agda表記「A∋a」は、「a」と同じ値を指し示しつつ、aの型がAであることを明示する表記となる。なお、この演算子「∋」の定義を言葉で説明すると、「第一引数Aが型、第二引数aがA型のときに限り型検査に通り、その場合(A型の)aを値として返す演算子」であると言うことができる。したがって、Agda以外の構成的型理論に基づく人工言語において「∋」と同様の演算子を定義する際には、そのような性質を有する演算子を定義すればよい。   Therefore, the Agda notation “A∋a” indicates the same value as “a” and clearly indicates that the type of a is A. The definition of the operator “∋” is explained in words. “Only when the first argument A is a type and the second argument a is an A type, the type check is performed. Can be said to be an operator that returns as Therefore, when an operator similar to “∋” is defined in an artificial language based on a constructive type theory other than Agda, an operator having such properties may be defined.

次に、「・」のAgdaでの定義は次の二行のようになる。
_・_:{A:Set}→{B:A→Set}→(f:(a:A)→Ba)→(a:A)→Ba
f・a=fa
Next, the definition of “·” in Agda is as follows.
__: {A: Set} → {B: A → Set} → (f: (a: A) → Ba) → (a: A) → Ba
f · a = fa

したがって、Agda表記「f・a」は、「fa」(関数fに引数aを適用した結果)と同じ値を指し示しつつ、関数部分と引数部分の別を明示する表記となる。なお、この演算子「・」の定義を言葉で説明すると、「第一引数fが関数であって、その関数の型を(x:A)→Bxとして、第二引数aがA型のときに限り型検査に通り、その場合(Ba型の)faを値として返す演算子」であると言うことができる。したがって、Agda以外の構成的型理論に基づく人工言語において「・」と同様の演算子を定義する際には、そのような性質を有する演算子を定義すればよい。   Therefore, the Agda notation “f · a” indicates the same value as “fa” (result of applying the argument “a” to the function “f”) while clearly indicating the distinction between the function part and the argument part. The definition of the operator “•” is described in words. “When the first argument f is a function, the type of the function is (x: A) → Bx, and the second argument a is the A type. In this case, it can be said that the operator returns a fa (value of Ba type) as a value. Therefore, when an operator similar to “·” is defined in an artificial language based on a constructive type theory other than Agda, an operator having such properties may be defined.

次に、CONTEXT[s/x]は、ケースxやアーギュメントxに文脈情報(文字列)sを追加する演算子である。したがって、CONTEXT[s/x]はxである。したがって、Agda以外の構成的型理論に基づく人工言語においてCONTEXT[ / ]と同様の演算子を定義する際には、そのような性質を有する演算子を定義すればよい。   Next, CONTEXT [s / x] is an operator that adds context information (character string) s to case x and argument x. Therefore, CONTEXT [s / x] is x. Therefore, when an operator similar to CONTEXT [/] is defined in an artificial language based on a constructive type theory other than Agda, an operator having such properties may be defined.

検査対象記憶部11に検査対象情報が記憶される過程は問わない。例えば、記録媒体を介して検査対象情報が検査対象記憶部11で記憶されるようになってもよく、通信回線等を介して送信された検査対象情報が検査対象記憶部11で記憶されるようになってもよく、入力デバイスを介して入力された検査対象情報が検査対象記憶部11で記憶されるようになってもよく、あるいは、翻訳部16がグラフ情報を変換した検査対象情報が検査対象記憶部11で記憶されるようになってもよい。検査対象記憶部11での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。検査対象記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。   The process in which inspection object information is memorize | stored in the inspection object memory | storage part 11 does not ask | require. For example, the inspection target information may be stored in the inspection target storage unit 11 via a recording medium, and the inspection target information transmitted via a communication line or the like is stored in the inspection target storage unit 11. The inspection object information input via the input device may be stored in the inspection object storage unit 11, or the inspection object information obtained by converting the graph information by the translation unit 16 may be inspected. It may be stored in the target storage unit 11. The storage in the inspection object storage unit 11 may be temporary storage in a RAM or the like, or may be long-term storage. The inspection object storage unit 11 can be realized by a predetermined recording medium (for example, a semiconductor memory, a magnetic disk, an optical disk, or the like).

検査部12は、検査対象情報に対して証明検査を行う。この証明検査は、証明検査を行う人工言語においてあらかじめ用意されているものである。この検査部12は、そのような人工言語においてプルーフチェッカー(proof checker)と呼ばれる機能によって実現される。検査部12は、証明検査によって、エラーの有無を取得することができる。また、検査部12は、エラーが存在する場合に、そのエラーの箇所を示す情報をも取得してもよい。エラーの箇所を示す情報は、例えば、検査対象情報における行番号であってもよく、それにコラム番号が加わったものであってもよく、基準となる位置からの文字数やデータ容量(例えば、バイト数等)であってもよく、または、それらの組み合わせであってもよい。なお、この検査部12の機能は、前述のように、プルーフチェッカーとして公知であり、その詳細な説明を省略する。   The inspection unit 12 performs a certification inspection on the inspection target information. This certification test is prepared in advance in an artificial language for performing a certification test. The inspection unit 12 is realized by a function called a proof checker in such an artificial language. The inspection unit 12 can acquire the presence or absence of an error by proof inspection. Further, when there is an error, the inspection unit 12 may also acquire information indicating the location of the error. The information indicating the location of the error may be, for example, a line number in the inspection target information or a column number added thereto, and the number of characters from the reference position or the data capacity (for example, the number of bytes) Etc.) or a combination thereof. The function of the inspection unit 12 is known as a proof checker as described above, and a detailed description thereof is omitted.

検査結果出力部13は、検査部12による証明検査の結果を出力する。証明検査の結果は、例えば、エラーの有無を示す情報を含んでいてもよく、エラーが存在する場合に、そのエラーの箇所を示す情報を含んでいてもよく、または、その他の証明検査の結果を含んでいてもよい。証明検査の結果によりエラーの箇所を示す場合には、例えば、行番号やコラム番号等が表示されることによって、エラーの箇所が特定できるようにされてもよく、ハイライト表示(例えば、下線や太字等の強調表示がなされたり、他の部分と色が変更されたりしてもよい)によってエラーの箇所が示されてもよく、エラーの箇所の先頭にカーソルを移動させることによってエラーの箇所が示されてもよく、あるいは、その他の方法によってエラーの箇所が示されてもよい。ここで、この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、検査結果出力部13は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、検査結果出力部13は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。   The inspection result output unit 13 outputs the result of the certification inspection performed by the inspection unit 12. The result of the certification check may include, for example, information indicating the presence / absence of an error, and may include information indicating the location of the error when an error exists, or the result of another certification check. May be included. When an error location is indicated by the result of the certification inspection, for example, a row number or a column number may be displayed so that the error location may be identified, and a highlight display (for example, underline or The location of the error may be indicated by highlighting in bold, etc., or the color of other portions may be changed), and moving the cursor to the beginning of the error location The location of the error may be indicated by other methods. Here, the output may be, for example, display on a display device (for example, a CRT or a liquid crystal display), transmission via a communication line to a predetermined device, printing by a printer, or audio output by a speaker. Alternatively, it may be stored in a recording medium or delivered to another component. Note that the inspection result output unit 13 may or may not include a device (for example, a display device or a printer) that performs output. Moreover, the test result output unit 13 may be realized by hardware, or may be realized by software such as a driver that drives these devices.

実行部14は、検査部12による証明検査によって、エラーのないことが検査された検査対象情報を実行する。その検査対象情報の実行は、例えば、後述する検査対象情報からグラフ情報への変換の際に行われる。検査対象情報からグラフ情報への変換の際に検査対象情報が実行される場合には、実行部14は、前述のように、生成関数と引数の値とを含む議論構造情報において、その引数の値をその生成関数に適用して実行することにより、ノードの具体的な親子関係を示す議論構造情報、すなわち、整合性の検査対象であるケースの各ノードに応じた項と、各ノードの親子関係に応じた演算子とを陽に記述する形式の議論構造情報を生成してもよい。この生成関数の実行は、検査対象情報からグラフ情報への変換の際に行われるものである。その生成関数の実行は、例えば、検査対象情報からグラフ情報への変換の際に、一括して行われてもよく、または、変換の処理の進行に応じて、逐次的に行われてもよい。いずれの場合であっても、実行部14は、ノードの具体的な親子関係を示す議論構造情報を生成するための実行を少なくとも行えばよく、それ以上の実行を行わなくてもよい。   The execution unit 14 executes the inspection target information that has been inspected for errors by the proof inspection by the inspection unit 12. The execution of the inspection object information is performed, for example, when converting the inspection object information described later into graph information. When the inspection target information is executed at the time of conversion from the inspection target information to the graph information, the execution unit 14 uses the argument structure information in the argument structure information including the generation function and the argument value as described above. By applying the value to the generation function and executing it, the discussion structure information indicating the specific parent-child relationship of the nodes, that is, the term corresponding to each node of the case whose consistency is to be checked, and the parent-child of each node The discussion structure information may be generated in a format that explicitly describes an operator corresponding to the relationship. The generation function is executed at the time of conversion from inspection object information to graph information. The execution of the generation function may be performed collectively, for example, at the time of conversion from the inspection target information to the graph information, or may be performed sequentially as the conversion process proceeds. . In any case, the execution unit 14 may perform at least the execution for generating the discussion structure information indicating the specific parent-child relationship of the nodes, and may not perform any further execution.

なお、実行部14は、検査部12による証明検査の際に検査対象情報を実行してもよい。前述のように、検査対象情報に、証明検査において用いる情報に関する実行プログラムが含まれている場合には、実行部14は、その検査対象情報の証明検査が行われる際に、その実行プログラムを実行し、その実行結果を検査部12に渡してもよい。そして、検査部12において、その実行結果を用いて証明検査が行われることになる。   The execution unit 14 may execute the inspection target information at the time of the certification inspection by the inspection unit 12. As described above, in the case where the inspection target information includes an execution program related to information used in the certification inspection, the execution unit 14 executes the execution program when the certification inspection of the inspection target information is performed. Then, the execution result may be passed to the inspection unit 12. Then, the inspection unit 12 performs a proof inspection using the execution result.

グラフ記憶部15では、グラフ情報が記憶される。グラフ情報は、検査対象情報に対応する有向非巡回グラフの各ノードと、それらの間の親子関係とを示す情報である。また、グラフ情報は、整合性の検査対象であるケースの情報である。前述の検査対象情報は、人工言語で記述されたものであるため、不慣れな者には理解しにくいことがあるが、このグラフ情報は、ノードの親子関係を視覚的に知ることができる情報であるため、専門家でなくても理解しやすい情報である。このグラフ情報は、各ノードの性質を示す情報(例えば、各ノードがゴールノードであるのか、ストラテジノードであるのか、エビデンスノードであるのかなどを示す情報)と、その各ノードの親子関係を示す情報を含む情報であればよい。したがって、グラフ情報は、例えば、各ノードの情報と、そのノードの親子関係を示すリンク情報とを有する情報であってもよく、親のノードを示す情報を含む各ノードの情報であってもよく、子のノードを示す情報を含む各ノードの情報であってもよい。このように、グラフ情報の構造は問わない。また、グラフ情報は、例えば、XMLのようにマークアップ言語で記述されるものであってもよく、または、その他のデータ形式の情報であってもよい。   The graph storage unit 15 stores graph information. The graph information is information indicating each node of the directed acyclic graph corresponding to the inspection target information and the parent-child relationship between them. Further, the graph information is information on a case that is an object of consistency check. The information to be inspected is written in an artificial language, so it may be difficult for an unfamiliar person to understand. However, this graph information is information that can visually understand the parent-child relationship of nodes. Therefore, it is easy to understand even if you are not an expert. This graph information indicates information indicating the nature of each node (for example, information indicating whether each node is a goal node, a strategy node, or an evidence node) and the parent-child relationship of each node. Any information including information may be used. Therefore, the graph information may be, for example, information having information on each node and link information indicating the parent-child relationship of the node, or information on each node including information indicating the parent node. Information of each node including information indicating child nodes may be used. Thus, the structure of the graph information does not matter. The graph information may be described in a markup language such as XML, or may be information in other data formats.

グラフ記憶部15にグラフ情報が記憶される過程は問わない。例えば、記録媒体を介してグラフ情報がグラフ記憶部15で記憶されるようになってもよく、通信回線等を介して送信されたグラフ情報がグラフ記憶部15で記憶されるようになってもよく、入力デバイスを介して入力されたグラフ情報がグラフ記憶部15で記憶されるようになってもよく、あるいは、翻訳部16が検査対象情報を変換したグラフ情報がグラフ記憶部15で記憶されるようになってもよい。グラフ記憶部15での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。グラフ記憶部15は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。   The process in which the graph information is stored in the graph storage unit 15 does not matter. For example, the graph information may be stored in the graph storage unit 15 via the recording medium, or the graph information transmitted via the communication line or the like may be stored in the graph storage unit 15. The graph information input via the input device may be stored in the graph storage unit 15, or the graph information obtained by converting the inspection target information by the translation unit 16 is stored in the graph storage unit 15. It may come to be. The storage in the graph storage unit 15 may be temporary storage in a RAM or the like, or may be long-term storage. The graph storage unit 15 can be realized by a predetermined recording medium (for example, a semiconductor memory, a magnetic disk, an optical disk, etc.).

翻訳部16は、検査対象情報と、グラフ情報との間の変換を行う。翻訳部16は、例えば、検査対象情報をグラフ情報に変換し、変換後のグラフ情報をグラフ記憶部15に蓄積してもよく、グラフ情報を検査対象情報に変換し、変換後の検査対象情報を検査対象記憶部11に蓄積してもよく、または、その両方の処理を行ってもよい。本実施の形態では、翻訳部16がその両方の処理を行う場合について主に説明する。検査対象情報をグラフ情報に変換する場合には、翻訳部16は、検査対象情報を、項と演算子とのパターンに応じて、検査対象情報の各項をノードに変換し、各演算子を各ノードの親子関係に変換する。また、グラフ情報を検査対象情報に変換する場合には、翻訳部16は、グラフ情報の各ノードの親子関係のパターンに応じて、グラフ情報の各ノードを項に変換し、各ノードの親子関係を演算子に変換する。なお、翻訳部16による変換の処理の詳細については、フローチャートを用いて後述する。   The translation unit 16 performs conversion between the inspection target information and the graph information. For example, the translation unit 16 may convert the inspection object information into graph information, accumulate the converted graph information in the graph storage unit 15, convert the graph information into inspection object information, and convert the inspection object information after conversion. May be stored in the inspection object storage unit 11, or both of the processes may be performed. In the present embodiment, a case where the translation unit 16 performs both processes will be mainly described. When converting the inspection target information into the graph information, the translation unit 16 converts each item of the inspection target information into a node according to the pattern of the term and the operator, and converts each operator into a node. Convert to the parent-child relationship of each node. In addition, when converting the graph information into the inspection target information, the translation unit 16 converts each node of the graph information into a term according to the parent-child relationship pattern of each node of the graph information, and the parent-child relationship of each node. Is converted to an operator. Details of the conversion process by the translation unit 16 will be described later using a flowchart.

表示部17は、検査対象記憶部11で記憶されている検査対象情報や、グラフ記憶部15で記憶されているグラフ情報を表示する。なお、検査対象情報を表示する際には、表示部17は、その検査対象情報をそのまま表示すればよい。一方、グラフ情報を表示する際には、表示部17は、そのグラフ情報を各ノードの親子関係が分かる有向非巡回グラフの画像を生成して、その画像を表示してもよく、あるいは、グラフ情報をそのまま表示してもよい。なお、ノードと、そのノードの親子関係を示す情報から有向非巡回グラフの画像を生成する方法はすでに公知であり、その詳細な説明を省略する。また、表示部17は、その他の情報を表示してもよい。例えば、実行部14による実行の結果を表示してもよい。なお、表示部17は、それらの表示を行う表示デバイス(例えば、CRTや液晶ディスプレイなど)を含んでもよく、あるいは含まなくてもよい。また、表示対象の表示は、別の装置においてなされてもよい。その場合には、表示部17は、装置の外部に対して表示対象の情報を送信するものであってもよい。また、表示部17は、ハードウェアによって実現されてもよく、あるいは表示デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。   The display unit 17 displays the inspection target information stored in the inspection target storage unit 11 and the graph information stored in the graph storage unit 15. When displaying the inspection object information, the display unit 17 may display the inspection object information as it is. On the other hand, when displaying the graph information, the display unit 17 may generate an image of a directed acyclic graph in which the parent-child relationship of each node is known, and display the image. The graph information may be displayed as it is. Note that a method for generating an image of a directed acyclic graph from a node and information indicating the parent-child relationship of the node is already known, and detailed description thereof is omitted. The display unit 17 may display other information. For example, the execution result by the execution unit 14 may be displayed. The display unit 17 may or may not include a display device (for example, a CRT or a liquid crystal display) that performs such display. The display target may be displayed on another device. In that case, the display unit 17 may transmit information to be displayed to the outside of the apparatus. The display unit 17 may be realized by hardware, or may be realized by software such as a driver that drives a display device.

受付部18は、指示や情報を受け付ける。例えば、受付部18は、検査対象情報に関する受け付けを行い、それに応じて、検査対象記憶部11で記憶されている検査対象情報を変更してもよい。また、例えば、受付部18は、グラフ情報に関する受け付けを行い、それに応じて、グラフ記憶部15で記憶されているグラフ情報を変更してもよい。また、例えば、受付部18は、検査の指示や翻訳の指示を受け付け、それに応じて、検査部12や翻訳部16に対して、検査や翻訳を行う旨の指示を渡してもよい。   The receiving unit 18 receives instructions and information. For example, the accepting unit 18 may accept the inspection target information and change the inspection target information stored in the inspection target storage unit 11 accordingly. For example, the reception unit 18 may perform reception regarding graph information and change the graph information stored in the graph storage unit 15 accordingly. Further, for example, the receiving unit 18 may receive an instruction for inspection and an instruction for translation, and in response, may instruct the inspection unit 12 and the translation unit 16 to inspect and translate.

なお、受付部18が受け付けた情報に応じてグラフ記憶部15で記憶されているグラフ情報を変更し、その変更後のグラフ情報に応じたノードとリンクとを表示部17が表示するシステムとして、D−Case Editorが知られている。したがって、グラフ情報の変更や、グラフ情報の表示に関する詳細な説明は省略する。そのD−Case Editorの詳細については、例えば、次のURLを参照されたい。なお、D−Caseの「D」は、Dependabilityを示す。
URL:http://www.il.is.s.u−tokyo.ac.jp/deos/dcase/D−Case_Editor.html
As a system in which the graph information stored in the graph storage unit 15 is changed according to the information received by the receiving unit 18 and the display unit 17 displays the nodes and links according to the changed graph information. D-Case Editor is known. Therefore, detailed description regarding the change of the graph information and the display of the graph information is omitted. For details of the D-Case Editor, refer to the following URL, for example. Note that “D” in D-Case indicates Dependability.
URL: http: // www. il. is. s. u-tokyo. ac. jp / deos / dcase / D-Case_Editor. html

受付部18は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された情報を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された情報を受け付けてもよい。なお、受付部18は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、受付部18は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。   For example, the reception unit 18 may receive information input from an input device (for example, a keyboard, a mouse, a touch panel, etc.), may receive information transmitted via a wired or wireless communication line, Information read from a predetermined recording medium (for example, an optical disk, a magnetic disk, a semiconductor memory, etc.) may be received. The reception unit 18 may or may not include a device (for example, a modem or a network card) for reception. The receiving unit 18 may be realized by hardware, or may be realized by software such as a driver that drives a predetermined device.

なお、検査対象記憶部11と、グラフ記憶部15とは、同一の記録媒体によって実現されてもよく、あるいは、別々の記録媒体によって実現されてもよい。前者の場合には、検査対象情報を記憶している領域が検査対象記憶部11となり、グラフ情報を記憶している領域がグラフ記憶部15となる。   The inspection object storage unit 11 and the graph storage unit 15 may be realized by the same recording medium, or may be realized by separate recording media. In the former case, the area storing the inspection object information is the inspection object storage unit 11, and the area storing the graph information is the graph storage unit 15.

次に、整合性検査装置1の動作について図2のフローチャートを用いて説明する。
(ステップS101)検査部12は、証明検査を行うかどうか判断する。そして、証明検査を行う場合には、ステップS102に進み、そうでない場合には、ステップS104に進む。なお、検査部12は、例えば、検査の指示が受付部18で受け付けられた場合に、検査を行うと判断してもよく、または、その他のタイミングで検査を行うと判断してもよい。
Next, the operation of the consistency inspection apparatus 1 will be described using the flowchart of FIG.
(Step S101) The inspection unit 12 determines whether to perform a certification inspection. And when performing a certification | authentication inspection, it progresses to step S102, and when that is not right, it progresses to step S104. For example, the inspection unit 12 may determine that the inspection is performed when an instruction for inspection is received by the reception unit 18, or may determine that the inspection is performed at other timing.

(ステップS102)検査部12は、検査対象記憶部11で記憶されている検査対象情報について証明検査を行う。そして、その検査結果を取得する。   (Step S <b> 102) The inspection unit 12 performs a certification inspection on the inspection object information stored in the inspection object storage unit 11. And the inspection result is acquired.

(ステップS103)検査結果出力部13は、検査部12による検査結果を出力する。そして、ステップS101に戻る。   (Step S103) The inspection result output unit 13 outputs the inspection result by the inspection unit 12. Then, the process returns to step S101.

(ステップS104)受付部18は、検査対象情報に関する情報を受け付けたかどうか判断する。そして、検査対象情報に関する情報を受け付けた場合には、ステップS105に進み、そうでない場合には、ステップS107に進む。   (Step S <b> 104) The receiving unit 18 determines whether information related to the inspection target information has been received. If information related to the inspection target information is received, the process proceeds to step S105, and if not, the process proceeds to step S107.

(ステップS105)受付部18は、受け付けた検査対象情報に関する情報に応じて、検査対象記憶部11で記憶されている検査対象情報を変更する。その変更は、例えば、検査対象情報の蓄積であってもよく、検査対象情報の削除であってもよく、検査対象情報の一部の変更であってもよい。   (Step S <b> 105) The receiving unit 18 changes the inspection target information stored in the inspection target storage unit 11 according to the received information regarding the inspection target information. The change may be, for example, accumulation of inspection object information, deletion of inspection object information, or partial change of inspection object information.

(ステップS106)表示部17は、変更後の検査対象情報を表示する。そして、ステップS101に戻る。   (Step S106) The display unit 17 displays the inspection object information after the change. Then, the process returns to step S101.

(ステップS107)受付部18は、グラフ情報に関する情報を受け付けたかどうか判断する。そして、グラフ情報に関する情報を受け付けた場合には、ステップS108に進み、そうでない場合には、ステップS110に進む。   (Step S107) The reception unit 18 determines whether information related to graph information has been received. If information related to the graph information is received, the process proceeds to step S108, and if not, the process proceeds to step S110.

(ステップS108)受付部18は、受け付けたグラフ情報に関する情報に応じて、検査対象記憶部11で記憶されているグラフ情報を変更する。その変更は、例えば、グラフ情報の蓄積であってもよく、グラフ情報の削除であってもよく、グラフ情報の一部の変更であってもよい。   (Step S108) The accepting unit 18 changes the graph information stored in the inspection target storage unit 11 in accordance with the information related to the accepted graph information. The change may be, for example, accumulation of graph information, deletion of graph information, or partial change of graph information.

(ステップS109)表示部17は、変更後のグラフ情報を表示する。そして、ステップS101に戻る。   (Step S109) The display unit 17 displays the changed graph information. Then, the process returns to step S101.

(ステップS110)翻訳部16は、検査対象情報をグラフ情報に変換するかどうか判断する。そして、その変換を行う場合には、ステップS111に進み、そうでない場合には、ステップS113に進む。なお、翻訳部16は、例えば、検査対象情報からグラフ情報への変換の指示が受付部18で受け付けられた場合に、その変換を行うと判断してもよく、または、その他のタイミングでその変換を行うと判断してもよい。   (Step S110) The translation unit 16 determines whether to convert the inspection object information into graph information. And when performing the conversion, it progresses to step S111, and when that is not right, it progresses to step S113. For example, the translation unit 16 may determine that the conversion is performed when the reception unit 18 receives an instruction to convert the inspection target information into the graph information, or the conversion may be performed at other timing. You may decide to do.

(ステップS111)翻訳部16は、検査対象情報をグラフ情報に変換する。その変換の詳細な処理については、図3のフローチャートを用いて後述する。   (Step S111) The translation unit 16 converts the inspection object information into graph information. Detailed processing of the conversion will be described later using the flowchart of FIG.

(ステップS112)表示部17は、変換後のグラフ情報を表示する。そして、ステップS101に戻る。   (Step S112) The display unit 17 displays the converted graph information. Then, the process returns to step S101.

(ステップS113)翻訳部16は、グラフ情報を検査対象情報に変換するかどうか判断する。そして、その変換を行う場合には、ステップS114に進み、そうでない場合には、ステップS101に戻る。なお、翻訳部16は、例えば、グラフ情報から検査対象情報への変換の指示が受付部18で受け付けられた場合に、その変換を行うと判断してもよく、または、その他のタイミングでその変換を行うと判断してもよい。   (Step S113) The translation unit 16 determines whether to convert the graph information into the inspection target information. And when performing the conversion, it progresses to step S114, and when that is not right, it returns to step S101. For example, the translation unit 16 may determine that the conversion is performed when the reception unit 18 receives an instruction for conversion from the graph information to the inspection object information, or the conversion is performed at other timing. You may decide to do.

(ステップS114)翻訳部16は、グラフ情報を検査対象情報に変換する。その変換の詳細な処理については、図6のフローチャートを用いて後述する。   (Step S114) The translation unit 16 converts the graph information into inspection object information. Detailed processing of the conversion will be described later with reference to the flowchart of FIG.

(ステップS115)表示部17は、変換後の検査対象情報を表示する。そして、ステップS101に戻る。   (Step S115) The display unit 17 displays the inspection target information after conversion. Then, the process returns to step S101.

なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。また、図2のフローチャートにおいて、検査対象情報をグラフ情報に変換する際には、検査部12による証明検査によって、問題のないことが確認されているべきである。したがって、ステップS110からステップS111に進む際に、証明検査を行い、問題のないことが確認された場合にのみステップS111に進み、問題がある場合には、ステップS101に戻るようにしてもよい。   In the flowchart of FIG. 2, the process is terminated by powering off or a process termination interrupt. Further, in the flowchart of FIG. 2, when converting the inspection object information into the graph information, it should be confirmed that there is no problem by the proof inspection by the inspection unit 12. Therefore, when proceeding from step S110 to step S111, a proof check is performed, and only when it is confirmed that there is no problem, the process proceeds to step S111, and when there is a problem, the process may return to step S101.

図3は、図2のフローチャートにおける検査対象からグラフへの翻訳の処理(ステップS111)の詳細を示すフローチャートである。
(ステップS201)翻訳部16は、検査対象記憶部11で記憶されている検査対象情報において、ケースに応じた記述がなされている箇所を特定する。通常、その箇所は、議論構造情報における有向非巡回グラフに対応する範囲である。その記述の箇所の特定は、例えば、その記述の箇所を図示しない記録媒体に蓄積することであってもよく、その特定した箇所にフラグ等を設定することであってもよく、その特定した箇所を示す情報(例えば、行番号やコラム番号等)を図示しない記録媒体に蓄積することであってもよく、あるいは、その他の特定であってもよい。
FIG. 3 is a flowchart showing details of the process of translation from the inspection target to the graph (step S111) in the flowchart of FIG.
(Step S <b> 201) The translation unit 16 specifies a place where a description corresponding to a case is made in the inspection target information stored in the inspection target storage unit 11. Usually, the location is a range corresponding to the directed acyclic graph in the discussion structure information. The location of the description may be, for example, storing the location of the description on a recording medium (not shown), or setting a flag or the like at the specified location. May be stored in a recording medium (not shown) or other specific information.

(ステップS202)実行部14は、検査対象情報を実行するかどうか判断する。そして、実行を行う場合には、ステップS203に進み、そうでない場合には、ステップS204に進む。なお、実行部14は、検査対象情報において、ケースが何らかの生成関数を用いて記述されており、項や演算子が陽に記述されていない場合に、検査対象情報を実行すると判断し、そうでない場合に、実行しないと判断してもよい。   (Step S202) The execution unit 14 determines whether to execute inspection target information. And when performing, it progresses to step S203, and when that is not right, it progresses to step S204. Note that the execution unit 14 determines that the inspection target information is to be executed when the case is described using some generation function in the inspection target information, and the term or operator is not explicitly described. In some cases, it may be determined not to execute.

(ステップS203)実行部14は、検査対象情報を実行する。すなわち、検査対象情報に含まれる生成関数を実行することによって、項や演算子を陽に記述する形式の検査対象情報を生成する。その実行後の検査対象情報は、検査対象記憶部11に蓄積されてもよい。   (Step S203) The execution unit 14 executes the inspection target information. In other words, by executing a generation function included in the inspection target information, the inspection target information in a form that explicitly describes terms and operators is generated. The inspection target information after the execution may be accumulated in the inspection target storage unit 11.

(ステップS204)翻訳部16は、ステップS201で特定されたケースに応じた記述の処理、すなわち、そのケースに応じた記述をグラフの情報に変換する処理を行う。この処理の詳細については、図4のフローチャートを用いて後述する。   (Step S204) The translation unit 16 performs a description process according to the case specified in Step S201, that is, a process for converting the description according to the case into graph information. Details of this processing will be described later with reference to the flowchart of FIG.

(ステップS205)翻訳部16は、グラフ記憶部15で記憶されているグラフ情報に、ノード等を追加する処理を行うかどうか判断する。そして、ノード等を追加する処理を行う場合には、ステップS206に進み、そうでない場合には、図2のフローチャートに戻る。なお、翻訳部16は、例えば、検査対象情報にモデル情報が含まれる場合に、ノード等を追加する処理を行うと判断してもよく、議論構造情報にノードの親子関係以外を示す情報が含まれる場合に、ノード等を追加する処理を行うと判断してもよく、あるいは、その他の場合に、ノード等を追加する処理を行うと判断してもよい。   (Step S205) The translation unit 16 determines whether or not to perform processing for adding a node or the like to the graph information stored in the graph storage unit 15. If the process of adding a node or the like is performed, the process proceeds to step S206. If not, the process returns to the flowchart of FIG. For example, the translation unit 16 may determine that the process of adding a node or the like is performed when the model information is included in the inspection target information, and the discussion structure information includes information indicating other than the parent-child relationship of the nodes. In such a case, it may be determined that processing for adding a node or the like is performed, or in other cases, processing for adding a node or the like may be performed.

(ステップS206)翻訳部16は、グラフ記憶部15で記憶されているグラフ情報に、ノード等の情報を追加する。そして、図2のフローチャートに戻る。なお、具体的には、翻訳部16は、モデル情報やケース名等に対応したコンテキストノードをグラフ情報に追加してもよく、モデル情報に対応した情報をグラフ情報に追加してもよく、または、その他の情報をグラフ情報に追加してもよい。なお、ノード以外の情報が追加された場合には、グラフ情報が表示される際に、その追加された情報が表示されなくてもよい。すなわち、グラフ情報は、検査対象情報の少なくとも一部の情報を、不可視情報として有してもよい。   (Step S206) The translation unit 16 adds information such as a node to the graph information stored in the graph storage unit 15. And it returns to the flowchart of FIG. Specifically, the translation unit 16 may add a context node corresponding to model information, a case name, or the like to the graph information, may add information corresponding to the model information to the graph information, or Other information may be added to the graph information. In addition, when information other than a node is added, when the graph information is displayed, the added information may not be displayed. That is, the graph information may include at least a part of the inspection target information as invisible information.

図3のフローチャートでは、ステップS203において実行部14が生成関数を実行することにより、検査対象情報を一括して項や演算子を陽に記述する形式に変換する場合について説明したが、そうでなくてもよい。例えば、前述のように、翻訳の処理において逐次的にその変換を行ってもよい。また、図3のフローチャートでは、翻訳部16が、検査対象情報をグラフ情報に変換した情報を逐次、グラフ記憶部15に蓄積するものとするが、そうでなくてもよい。翻訳部16は、図示しない記録媒体に順次、グラフ情報の一部の情報を蓄積し、グラフ情報が完成した後に、それをグラフ記憶部15に一括して蓄積してもよい。   In the flowchart of FIG. 3, the case where the execution unit 14 executes the generation function in step S203 to convert the inspection target information into a form in which terms and operators are explicitly described has been described. May be. For example, as described above, the conversion may be performed sequentially in the translation process. In the flowchart of FIG. 3, the translation unit 16 sequentially accumulates information obtained by converting the inspection target information into graph information in the graph storage unit 15, but this need not be the case. The translation unit 16 may sequentially accumulate a part of the graph information on a recording medium (not shown), and after the graph information is completed, it may be accumulated in the graph storage unit 15 in a lump.

図4は、図3のフローチャートにおけるケースに応じた記述の処理(ステップS204)の詳細を示すフローチャートである。
(ステップS301)翻訳部16は、処理の対象となるケースのパターンを特定する。図9(a)で示されるように、これは通常、ゴールとアーギュメントのパターンか、あるいは、ケースとコンテキストのパターンとなる。このパターンの特定は、あらかじめ図示しない記録媒体で記憶されているパターンを読み出し、そのパターンマッチングにより行うことができる。そのパターンは、例えば、「g∋t1」や、「CONTEXT[s/t2]」のパターンである。gは任意のゴールの項であり、t1は任意のアーギュメントであり、t2は任意のケースであり、sは任意のコンテキストの項である。
FIG. 4 is a flowchart showing details of the description processing (step S204) according to the case in the flowchart of FIG.
(Step S301) The translation unit 16 specifies a pattern of a case to be processed. As shown in FIG. 9A, this is usually a goal and argument pattern or a case and context pattern. This pattern can be specified by reading a pattern stored in advance on a recording medium (not shown) and performing pattern matching. The pattern is, for example, a pattern of “g∋t1” or “CONTEXT [s / t2]”. g is an arbitrary goal term, t1 is an arbitrary argument, t2 is an arbitrary case, and s is an arbitrary context term.

(ステップS302)翻訳部16は、特定したパターンに応じたノードを生成する。例えば、パターン「g∋t」を特定した場合には、翻訳部16は、それに応じて「g」に対応するゴールノードを生成する。また、例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、それに応じて「s」に対応するコンテキストノードを生成する。   (Step S302) The translation unit 16 generates a node corresponding to the identified pattern. For example, when the pattern “g∋t” is specified, the translation unit 16 generates a goal node corresponding to “g” accordingly. For example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 generates a context node corresponding to “s” accordingly.

(ステップS303)翻訳部16は、ステップS302で生成した以外の残りの部分は、ケースであるかどうか判断する。例えば、パターン「g∋t」を特定した場合には、翻訳部16は、「g」に対応するゴールノード以外の残りの部分がケースではないアーギュメント「t」であると判断する。一方、例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、「s」に対応するコンテキストノード以外の残りの部分がケース「t」であると判断する。そして、残りの部分がケースである場合には、ステップS304に進み、そうでない場合には、ステップS305に進む。   (Step S303) The translation unit 16 determines whether or not the remaining part other than that generated in step S302 is a case. For example, when the pattern “g∋t” is specified, the translation unit 16 determines that the remaining part other than the goal node corresponding to “g” is an argument “t” that is not a case. On the other hand, for example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 determines that the remaining part other than the context node corresponding to “s” is the case “t”. And when the remaining part is a case, it progresses to step S304, and when that is not right, it progresses to step S305.

(ステップS304)翻訳部16は、その残りの部分について、ケースに応じた記述の処理を実行する。その処理は、図4のフローチャートで示されるものである。すなわち、翻訳部16は、ケースに応じた記述の処理を再帰的に実行することになる。   (Step S304) The translation unit 16 executes description processing corresponding to the case for the remaining part. This process is shown in the flowchart of FIG. That is, the translation unit 16 recursively executes the description process according to the case.

(ステップS305)翻訳部16は、その残りの部分について、アーギュメントに応じた記述の処理を実行する。その処理の詳細については、図5のフローチャートを用いて後述する。   (Step S305) The translation unit 16 executes a description process according to the arguments for the remaining part. Details of the processing will be described later with reference to the flowchart of FIG.

(ステップS306)翻訳部16は、ステップS302で生成したノードと、その残りの部分とのリンクを生成する。そのリンクの向きは、ステップS301で特定したパターンに応じたものとなる。そして、上位のフローチャートに戻る。例えば、パターン「g∋t」を特定した場合には、翻訳部16は、「g」に対応するゴールノードが親となり、「t」に対応するアーギュメントのルートノードが子となるリンクを生成する。また、例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、「s」に対応するコンテキストノードが子となり、残りのケース「t」のルートノード(ゴールノード)が親となるリンクを生成する。   (Step S306) The translation unit 16 generates a link between the node generated in step S302 and the remaining portion. The direction of the link is in accordance with the pattern specified in step S301. Then, the process returns to the upper flowchart. For example, when the pattern “g∋t” is specified, the translation unit 16 generates a link whose parent node is the goal node corresponding to “g” and whose child is the root node of the argument corresponding to “t”. . For example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 uses the context node corresponding to “s” as a child, and the root node (goal node) of the remaining case “t”. Creates a parent link.

図5は、図4のフローチャートにおけるアーギュメントに応じた記述の処理(ステップS305)の詳細を示すフローチャートである。
(ステップS401)翻訳部16は、処理の対象となるアーギュメントのパターンを特定する。図9(b)で示されるように、これは通常、ストラテジとケースのパターンか、エビデンスのパターンか、あるいは、アーギュメントとコンテキストのパターンとなる。このパターンの特定は、あらかじめ図示しない記録媒体で記憶されているパターンを読み出し、そのパターンマッチングにより行うことができる。そのパターンは、例えば、「f・t・t・…・t」や、「CONTEXT[s/t]」のパターンである。前者のパターンで、nが1以上の場合には、fは、任意のストラテジの項であり、t等は、任意のケースに応じた項であり、nが0の場合には、fは、任意のエビデンスの項である。また、後者のパターンの場合、tは、任意のアーギュメントの項であり、sは、任意のコンテキストの項である。
FIG. 5 is a flowchart showing details of the description processing (step S305) according to the arguments in the flowchart of FIG.
(Step S401) The translation unit 16 specifies an argument pattern to be processed. As shown in FIG. 9 (b), this is typically a strategy and case pattern, an evidence pattern, or an argument and context pattern. This pattern can be specified by reading a pattern stored in advance on a recording medium (not shown) and performing pattern matching. The pattern is, for example, a pattern of “f · t 1 · t 2 ... · T n ” or “CONTEXT [s / t]”. In the former pattern, when n is 1 or more, f is a term of an arbitrary strategy, t 1 and the like are terms according to an arbitrary case, and when n is 0, f is , Any evidence term. In the latter pattern, t is an arbitrary argument term, and s is an arbitrary context term.

(ステップS402)翻訳部16は、特定したパターンに応じたノードを生成する。例えば、n≧1のパターン「f・t・t・…・t」を特定した場合には、翻訳部16は、それに応じて「f」に対応するストラテジノードを生成する。また、例えば、n=0のパターン「f・t・t・…・t」を特定した場合には、翻訳部16は、それに応じて「f」に対応するエビデンスノードを生成する。また、例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、それに応じて「s」に対応するコンテキストノードを生成する。 (Step S402) The translation unit 16 generates a node corresponding to the specified pattern. For example, when the pattern “f · t 1 · t 2 ... T n ” with n ≧ 1 is specified, the translation unit 16 generates a strategy node corresponding to “f” accordingly. For example, when the pattern “f · t 1 · t 2 ... · T n ” of n = 0 is specified, the translation unit 16 generates an evidence node corresponding to “f” accordingly. For example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 generates a context node corresponding to “s” accordingly.

(ステップS403)翻訳部16は、生成したノードがリーフノード、すなわち、エビデンスノードであるかどうか判断する。そして、リーフノードである場合には、上位のフローチャートに戻り、そうでない場合には、ステップS404に進む。   (Step S403) The translation unit 16 determines whether the generated node is a leaf node, that is, an evidence node. If it is a leaf node, the process returns to the upper flowchart, and if not, the process proceeds to step S404.

(ステップS404)翻訳部16は、ステップS403で生成した以外の残りの部分は、ケースであるかどうか判断する。例えば、n≧1のパターン「f・t・t・…・t」を特定した場合には、翻訳部16は、「f」に対応するストラテジノード以外の残りの部分がケース「t」、「t」、…、「t」であると判断する。また、例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、「s」に対応するコンテキストノード以外の残りの部分がアーギュメント「t」であると判断する。そして、残りの部分がケースである場合には、ステップS405に進み、そうでない場合には、ステップS408に進む。 (Step S404) The translation unit 16 determines whether or not the remaining part other than that generated in step S403 is a case. For example, when the pattern “f · t 1 · t 2 ... T n ” with n ≧ 1 is specified, the translation unit 16 determines that the remaining part other than the strategy node corresponding to “f” is the case “t”. 1 ”,“ t 2 ”,...,“ T n ”. For example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 determines that the remaining part other than the context node corresponding to “s” is the argument “t”. And when the remaining part is a case, it progresses to step S405, and when that is not right, it progresses to step S408.

(ステップS405)翻訳部16は、その残りの部分について、ケースに応じた記述の処理を実行する。その処理は、図4のフローチャートで示されるものである。   (Step S405) The translation unit 16 executes description processing corresponding to the case for the remaining part. This process is shown in the flowchart of FIG.

(ステップS406)翻訳部16は、ステップS402で生成したノードと、その残りの部分とのリンクを生成する。そのリンクの向きは、ステップS401で特定したパターンに応じたものとなる。そして、上位のフローチャートに戻る。例えば、n≧1のパターン「f・t・t・…・t」を特定した場合には、翻訳部16は、「f」に対応するストラテジノードが親となり、ステップS405で処理を行ったケースのルートノード(ゴールノード)が子となるリンクを生成する。 (Step S406) The translation unit 16 generates a link between the node generated in step S402 and the remaining portion. The direction of the link is in accordance with the pattern specified in step S401. Then, the process returns to the upper flowchart. For example, when the pattern “f · t 1 · t 2 ... T n ” with n ≧ 1 is specified, the translation unit 16 becomes the parent of the strategy node corresponding to “f”, and the process is performed in step S405. A link in which the root node (goal node) of the performed case is a child is generated.

(ステップS407)翻訳部16は、まだ処理のなされていないケースが存在するかどうか判断する。そして、存在する場合には、ステップS405に戻って、そのケースに応じた記述の処理を実行し、そうでない場合には、上位のフローチャートに戻る。なお、ステップS401において、n≧1のパターン「f・t・t・…・t」が特定された場合には、ステップS405,S406の処理がn回、繰り返されることになる。 (Step S407) The translation unit 16 determines whether there is a case that has not yet been processed. If it exists, the process returns to step S405 to execute a description process corresponding to the case. If not, the process returns to the upper flowchart. If a pattern “f · t 1 · t 2 ... T n ” with n ≧ 1 is specified in step S401, the processes in steps S405 and S406 are repeated n times.

(ステップS408)翻訳部16は、その残りの部分について、アーギュメントに応じた記述の処理を実行する。その処理は、図5のフローチャートで示されるものである。すなわち、翻訳部16は、アーギュメントに応じた記述の処理を再帰的に実行することになる。   (Step S <b> 408) The translation unit 16 executes a description process corresponding to the argument for the remaining part. This process is shown in the flowchart of FIG. That is, the translation unit 16 recursively executes a description process according to the argument.

(ステップS409)翻訳部16は、ステップS402で生成したノードと、その残りの部分とのリンクを生成する。そのリンクの向きは、ステップS401で特定したパターンに応じたものとなる。そして、上位のフローチャートに戻る。例えば、パターン「CONTEXT[s/t]」を特定した場合には、翻訳部16は、「s」に対応するコンテキストノードが子となり、残りのアーギュメント「t」のルートノード(ストラテジノード、または、エビデンスノード)が親となるリンクを生成する。   (Step S409) The translation unit 16 generates a link between the node generated in step S402 and the remaining portion. The direction of the link is in accordance with the pattern specified in step S401. Then, the process returns to the upper flowchart. For example, when the pattern “CONTEXT [s / t]” is specified, the translation unit 16 has a context node corresponding to “s” as a child, and the root node (strategy node or strategy node) of the remaining argument “t”. Evidence node) creates a parent link.

図6は、図2のフローチャートにおけるグラフから検査対象への翻訳の処理(ステップS114)の詳細を示すフローチャートである。
(ステップS501)翻訳部16は、グラフ記憶部15で記憶されているグラフ情報において、ルートノードを特定する。本実施の形態では、ルートノードが1個である有向非巡回グラフを扱うため、このルートノードは1個に特定される。なお、ルートノードは、親ノードを有さないノードである。したがって、グラフ情報に含まれるノードやリンクを示す情報を用いて、各ノードに親ノードが存在するかどうか判断し、親ノードが存在しないと判断されたノードがルートノードとなる。なお、ルートノードの特定は、例えば、そのルートノードを識別する情報を図示しない記録媒体に蓄積することであってもよく、そのルートノードに対応付けてフラグ等を設定することであってもよく、あるいは、その他の特定であってもよい。
FIG. 6 is a flowchart showing details of the process of translation from the graph to the inspection object (step S114) in the flowchart of FIG.
(Step S501) The translation unit 16 identifies a root node in the graph information stored in the graph storage unit 15. In the present embodiment, since a directed acyclic graph with one root node is handled, this root node is specified as one. The root node is a node that does not have a parent node. Therefore, it is determined whether or not a parent node exists in each node using information indicating nodes and links included in the graph information, and a node determined to have no parent node becomes a root node. The identification of the root node may be, for example, storing information identifying the root node in a recording medium (not shown), or setting a flag or the like in association with the root node. Or other specific may be sufficient.

(ステップS502)翻訳部16は、ステップS501で特定したノードをルートノードとするケースに関する処理を行う。この処理の詳細については、図7のフローチャートを用いて後述する。   (Step S502) The translation unit 16 performs processing related to the case where the node identified in Step S501 is the root node. Details of this processing will be described later with reference to the flowchart of FIG.

(ステップS503)翻訳部16は、検査対象情報に追加する情報が存在するかどうか判断する。そして、存在する場合には、ステップS504に進み、そうでない場合には、図2のフローチャートに戻る。   (Step S503) The translation unit 16 determines whether there is information to be added to the inspection target information. If it exists, the process proceeds to step S504, and if not, the process returns to the flowchart of FIG.

(ステップS504)翻訳部16は、グラフ情報に含まれる情報を検査対象情報に追加する。例えば、グラフ情報に不可視情報が含まれる場合には、その不可視情報に対応するモデル情報を検査対象情報に追加してもよい。また、グラフ情報に、例えば、モデル情報やケース名等に対応したコンテキストノードが含まれる場合には、そのコンテキストノードに含まれるモデル情報やケース名等を検査対象情報に追加してもよい。そして、図2のフローチャートに戻る。   (Step S504) The translation unit 16 adds information included in the graph information to the inspection target information. For example, when invisible information is included in the graph information, model information corresponding to the invisible information may be added to the inspection target information. For example, when the graph information includes a context node corresponding to model information, a case name, or the like, the model information, case name, or the like included in the context node may be added to the inspection target information. And it returns to the flowchart of FIG.

図6のフローチャートでは、翻訳部16が、グラフ情報を検査対象情報に変換した情報を逐次、検査対象記憶部11に蓄積するものとするが、そうでなくてもよい。翻訳部16は、図示しない記録媒体に順次、検査対象情報の一部の情報を蓄積し、検査対象情報が完成した後に、それを検査対象記憶部11に一括して蓄積してもよい。また、グラフ情報を検査対象情報に翻訳する際には、グラフ情報においてモデル情報に対応する情報が含まれていないこともあり得る。そのような場合には、グラフ情報を、検査対象情報の議論構造情報に対応する部分に翻訳し、その後、検査対象情報において、適宜、モデル情報に対応する情報が追加されてもよい。   In the flowchart of FIG. 6, the translation unit 16 sequentially accumulates the information obtained by converting the graph information into the inspection target information in the inspection target storage unit 11, but this need not be the case. The translation unit 16 may sequentially accumulate a part of the inspection target information on a recording medium (not shown), and after the inspection target information is completed, the translation unit 16 may store the information in the inspection target storage unit 11 collectively. Further, when the graph information is translated into the inspection object information, the graph information may not include information corresponding to the model information. In such a case, the graph information may be translated into a portion corresponding to the discussion structure information of the inspection target information, and thereafter, information corresponding to the model information may be appropriately added to the inspection target information.

図7は、図6のフローチャートにおけるケースの処理(ステップS502)の詳細を示すフローチャートである。
(ステップS601)翻訳部16は、カウンタiを1に設定する。
FIG. 7 is a flowchart showing details of the case processing (step S502) in the flowchart of FIG.
(Step S601) The translation unit 16 sets the counter i to 1.

(ステップS602)翻訳部16は、処理対象となっているケースのルートノードを親とするi番目のリンクについて、親子関係のパターンを特定する。図9(a)で示されるように、これは通常、親のゴールノードと、子のアーギュメントとのパターンか、親のゴールノードと、子のコンテキストノードとのパターンとなる。なお、子がアーギュメントである場合には、具体的には、子のルートノードは、ストラテジノードかエビデンスノードとなる。このパターンの特定は、あらかじめ図示しない記録媒体で記憶されているパターンを読み出し、そのパターンマッチングにより行うことができる。そのパターンは、例えば、(親ノード、子ノード)が、(ゴールノード、ストラテジノード)であるパターンや、(ゴールノード、エビデンスノード)であるパターン、または、(ゴールノード、コンテキストノード)であるパターンである。   (Step S602) The translation unit 16 identifies a parent-child relationship pattern for the i-th link whose parent is the root node of the case being processed. As shown in FIG. 9A, this is usually a pattern of a parent goal node and a child argument, or a pattern of a parent goal node and a child context node. When the child is an argument, specifically, the child root node is a strategy node or an evidence node. This pattern can be specified by reading a pattern stored in advance on a recording medium (not shown) and performing pattern matching. The pattern is, for example, a pattern in which (parent node, child node) is (goal node, strategy node), pattern (goal node, evidence node), or pattern (goal node, context node). It is.

(ステップS603)翻訳部16は、i番目のリンクのリンク先がアーギュメントであるかどうか判断する。例えば、ステップS602でパターン(ゴールノード、ストラテジノード)や、(ゴールノード、エビデンスノード)を特定した場合には、翻訳部16は、リンク先がアーギュメントであると判断し、ステップS602でパターン(ゴールノード、コンテキストノード)を特定した場合には、翻訳部16は、リンク先がコンテキストノードである、すなわち、アーギュメントでないと判断する。そして、リンク先がアーギュメントである場合には、ステップS604に進み、そうでない場合には、ステップS605に進む。   (Step S603) The translation unit 16 determines whether the link destination of the i-th link is an argument. For example, when a pattern (goal node, strategy node) or (goal node, evidence node) is specified in step S602, the translation unit 16 determines that the link destination is an argument, and in step S602, the pattern (goal node). When the node or context node is specified, the translation unit 16 determines that the link destination is the context node, that is, it is not an argument. If the link destination is an argument, the process proceeds to step S604, and if not, the process proceeds to step S605.

(ステップS604)翻訳部16は、i番目のリンクのリンク先のノードがルートノードであるアーギュメントに関する処理を行う。この処理の詳細については、図8のフローチャートを用いて後述する。   (Step S604) The translation unit 16 performs processing related to an argument in which the link destination node of the i-th link is the root node. Details of this processing will be described later with reference to the flowchart of FIG.

(ステップS605)翻訳部16は、i番目のリンクのリンク先であるコンテキストノードに対応する項を生成する。その項は、演算子CONTEXT[s/ ]の「s」に対応する項である。   (Step S605) The translation unit 16 generates a term corresponding to the context node that is the link destination of the i-th link. The term is a term corresponding to “s” of the operator CONTEXT [s /].

(ステップS606)翻訳部16は、i番目のリンクについて特定したパターンに応じた演算子を生成する。例えば、パターン(ゴールノード、ストラテジノード)や、(ゴールノード、エビデンスノード)を特定した場合には、翻訳部16は、(ゴールノードの項)∋(ストラテジノードをルートノードとするアーギュメントの項)や、(ゴールノードの項)∋(エビデンスノードをルートノードとするアーギュメントの項)となる演算子「∋」を生成する。また、例えば、パターン(ゴールノード、コンテキストノード)を特定した場合には、翻訳部16は、CONTEXT[(コンテキストノードの項)/(ゴールノードをルートノードとするケースの項)]となる演算子CONTEXT[ / ]を生成する。   (Step S606) The translation unit 16 generates an operator according to the pattern specified for the i-th link. For example, when a pattern (goal node, strategy node) or (goal node, evidence node) is specified, the translation unit 16 (term of goal node) ∋ (argument term with strategy node as root node) And the operator “∋” that becomes (goal node term) ∋ (argument term with the evidence node as a root node). For example, when a pattern (goal node, context node) is specified, the translation unit 16 uses an operator that becomes CONTEXT [(context node term) / (case node with the goal node as the root node)]. CONTEXT [/] is generated.

(ステップS607)翻訳部16は、カウンタiを1だけインクリメントする。   (Step S607) The translation unit 16 increments the counter i by 1.

(ステップS608)翻訳部16は、処理対象となっているケースのルートノードを親とするi番目のリンクが存在するかどうか判断する。そして、存在する場合には、ステップS602に戻り、存在しない場合には、ステップS609に進む。   (Step S608) The translation unit 16 determines whether there is an i-th link whose parent is the root node of the case to be processed. And when it exists, it returns to step S602, and when it does not exist, it progresses to step S609.

(ステップS609)翻訳部16は、処理対象となっているケースのルートノードであるゴールノードの項を生成する。   (Step S609) The translation part 16 produces | generates the term of the goal node which is a root node of the case used as a process target.

(ステップS610)翻訳部16は、i−1個のリンクのうち、リンク先にアーギュメントを持つものが一つだけあり、他は全てリンク先にコンテキスト等の他のノードを持つかどうか判断する。そして、そうである場合には、ステップS611に進み、そうでない場合には、ステップS612に進む。   (Step S610) The translation unit 16 determines whether there is only one of the i-1 links having an argument at the link destination, and all others have other nodes such as contexts at the link destination. If so, the process proceeds to step S611. If not, the process proceeds to step S612.

(ステップS611)翻訳部16は、ステップS604〜S606,S609で生成したアーギュメントの項やリンク先の項、演算子、ルートノードであるゴールノードの項を用いて、処理の対象となっているケースの項を生成する。例えば、非アーギュメントの子が全てコンテキストノードである場合に、翻訳部16は、ゴールノードをルートノードにもつケースの項として、
CONTEXT[(コンテキストノードの項1)/
CONTEXT[(コンテキストノードの項2)/

CONTEXT[(コンテキストノードの項{i−2})/
(ゴールノードの項)∋(アーギュメントの項)
]…]]
を生成する。なお、ここでi≧2であり、i=2の場合には、演算子CONTEXT[ / ]は用いられない。非アーギュメントの子にコンテキストノード以外のものがある場合も、上のCONTEXT[ / ]に代えてステップS606で生成される演算子を用いて、同様にケースの項を生成する。そして、上位フローチャートに戻る。
(Step S611) The translation unit 16 is subject to processing using the argument term, the linked term, the operator, and the goal node term that is the root node generated in Steps S604 to S606 and S609. Generates the term For example, when all non-argument children are context nodes, the translation unit 16 uses the goal node as a root node as a term of a case.
CONTEXT [(context node item 1) /
CONTEXT [(context node item 2) /
...
CONTEXT [(context node term {i-2}) /
(Goal node term) ∋ (argument term)
] ...]]
Is generated. Here, when i ≧ 2 and i = 2, the operator CONTEXT [/] is not used. Even when there are non-argument children other than the context node, a case term is similarly generated by using the operator generated in step S606 instead of the above CONTEXT [/]. Then, the process returns to the upper flowchart.

(ステップS612)翻訳部16は、ケースの構造に合わないグラフが処理されたことを表す「エラーケースの項」を生成する。「エラーケースの項」としては、証明検査の結果が必ずエラーになるものを選ぶ。また、「エラーケースの項」は、エラーを生じたケースのルートノードを指定する情報を参考に含んでいてもよく、それぞれの子の翻訳結果である項を参考に含んでいてもよい。そして、上位フローチャートに戻る。   (Step S612) The translation unit 16 generates an “error case term” indicating that a graph that does not match the case structure has been processed. As the “error case term”, select the one that always results in an error as a result of the certification inspection. The “error case term” may include information specifying the root node of the case in which an error has occurred, or may include a term that is a translation result of each child. Then, the process returns to the upper flowchart.

なお、ステップS612において、翻訳部16は、ケースの構造に合わないグラフが処理されたことの警告を出力してもよく、また、上位のフローチャートの処理を含めてステップS114を異常終了してもよい。   In step S612, the translation unit 16 may output a warning that a graph that does not match the case structure has been processed, or may abnormally terminate step S114 including the processing of the upper flowchart. Good.

図8は、図7のフローチャートにおけるアーギュメントの処理(ステップS604)の詳細を示すフローチャートである。
(ステップS701)翻訳部16は、処理対象となっているアーギュメントのルートノードにリンク先のノードが存在するかどうか判断する。そして、リンク先のノードが存在する場合には、ステップS702に進み、そうでない場合には、ステップS710に進む。
FIG. 8 is a flowchart showing details of the argument processing (step S604) in the flowchart of FIG.
(Step S701) The translation unit 16 determines whether a link destination node exists in the root node of the argument to be processed. If a link destination node exists, the process proceeds to step S702; otherwise, the process proceeds to step S710.

(ステップS702)翻訳部16は、カウンタjを1に設定する。   (Step S702) The translation unit 16 sets the counter j to 1.

(ステップS703)翻訳部16は、処理対象となっているアーギュメントのルートノードを親とするj番目のリンクについて、親子関係のパターンを特定する。図9(b)で示されるように、これは通常、親のストラテジノードと、子のケースとのパターンか、親のストラテジノードと、子のコンテキストノードとのパターンが、親のエビデンスノードと子のコンテキストノードのパターンとなる。なお、子がケースである場合には、具体的には、子のルートノードはゴールノードとなる。このパターンの特定は、あらかじめ図示しない記録媒体で記憶されているパターンを読み出し、そのパターンマッチングにより行うことができる。そのパターンは、例えば、(親ノード、子ノード)が、(ストラテジノード、ゴールノード)であるパターンや、(ストラテジノード、コンテキストノード)であるパターン、または、(エビデンスノード、コンテキストノード)であるパターンである。   (Step S703) The translation unit 16 specifies a parent-child relationship pattern for the j-th link whose parent is the root node of the argument to be processed. As shown in FIG. 9 (b), this is usually the pattern of the parent strategy node and child case, or the pattern of the parent strategy node and child context node is the parent evidence node and child. This is the pattern of the context node. When the child is a case, specifically, the child root node is a goal node. This pattern can be specified by reading a pattern stored in advance on a recording medium (not shown) and performing pattern matching. The pattern is, for example, a pattern in which (parent node, child node) is (strategy node, goal node), pattern (strategy node, context node), or pattern (evidence node, context node) It is.

(ステップS704)翻訳部16は、j番目のリンクのリンク先がケースであるかどうか判断する。例えば、ステップS703でパターン(ストラテジノード、ゴールノード)を特定した場合には、翻訳部16は、リンク先がケースであると判断し、ステップS703でパターン(ストラテジノード、コンテキストノード)を特定した場合には、翻訳部16は、リンク先がコンテキストノードである、すなわち、ケースでないと判断する。そして、リンク先がケースである場合には、ステップS705に進み、そうでない場合には、ステップS706に進む。   (Step S704) The translation unit 16 determines whether the link destination of the j-th link is a case. For example, when the pattern (strategy node, goal node) is specified in step S703, the translation unit 16 determines that the link destination is a case, and the pattern (strategy node, context node) is specified in step S703. The translation unit 16 determines that the link destination is a context node, that is, not a case. If the link destination is a case, the process proceeds to step S705; otherwise, the process proceeds to step S706.

(ステップS705)翻訳部16は、j番目のリンクのリンク先であるゴールノードがルートノードであるケースに関する処理を行う。その処理は、図7のフローチャートで示されるものである。   (Step S705) The translation unit 16 performs processing related to a case where the goal node that is the link destination of the j-th link is the root node. This process is shown in the flowchart of FIG.

(ステップS706)翻訳部16は、j番目のリンクのリンク先が、例えば、コンテキストノードであった場合には、コンテキストノードに対応する項を生成する。その項は、演算子CONTEXT[s/ ]の「s」に対応する項である。   (Step S706) When the link destination of the j-th link is a context node, for example, the translation unit 16 generates a term corresponding to the context node. The term is a term corresponding to “s” of the operator CONTEXT [s /].

(ステップS707)翻訳部16は、j番目のリンクについて特定したパターンに応じた演算子を生成する。例えば、パターン(ストラテジノード、ゴールノード)を特定した場合には、翻訳部16は、(ストラテジノードの項)・(ゴールノードをルートノードとするケースの項)となる演算子「・」を生成する。また、例えば、パターン(ストラテジノード、コンテキストノード)を特定した場合には、翻訳部16は、CONTEXT[(コンテキストノードの項)/(ストラテジノードをルートノードとするアーギュメントの項)]となる演算子CONTEXT[ / ]を生成する。   (Step S707) The translation unit 16 generates an operator according to the pattern specified for the j-th link. For example, when a pattern (strategy node, goal node) is specified, the translation unit 16 generates an operator “·” that becomes (a strategy node term) · (a case node having a goal node as a root node). To do. Also, for example, when a pattern (strategy node, context node) is specified, the translation unit 16 uses an operator that becomes CONTEXT [(term node of context node) / (argument term having a strategy node as a root node)]. CONTEXT [/] is generated.

(ステップS708)翻訳部16は、カウンタjを1だけインクリメントする。   (Step S708) The translation unit 16 increments the counter j by 1.

(ステップS709)翻訳部16は、処理対象となっているアーギュメントのルートノードを親とするj番目のリンクが存在するかどうか判断する。そして、存在する場合には、ステップS703に戻り、存在しない場合には、ステップS710に進む。   (Step S709) The translation unit 16 determines whether there is a j-th link whose parent is the root node of the argument to be processed. And when it exists, it returns to step S703, and when it does not exist, it progresses to step S710.

(ステップS710)翻訳部16は、処理対象となっているアーギュメントのルートノードに応じた項を生成する。例えば、処理対象となっているアーギュメントがエビデンスノードである場合には、エビデンスの項を生成し、処理対象となっているアーギュメントのルートノードがストラテジノードである場合には、そのストラテジノードの項を生成する。   (Step S710) The translation unit 16 generates a term corresponding to the root node of the argument that is the processing target. For example, if the argument to be processed is an evidence node, an evidence term is generated. If the root node of the argument to be processed is a strategy node, the term of the strategy node is set. Generate.

(ステップS711)翻訳部16は、ステップS705〜S707,S710で生成したケースの項やリンク先の項、演算子、ルートノードの項を用いて、処理の対象となっているアーギュメントの項を生成する。すなわち、翻訳部16は、処理対象となっているアーギュメントのルートノードにリンクがなかった場合、すなわち、ステップS701からステップS710に進んだ場合には、ステップS710で生成した項そのものをアーギュメントの項とする。一方、処理対象となっているアーギュメントのルートノードにリンクがあった場合には、例えば、翻訳部16は、さらに、ケースでない子が全てコンテキストノードであったときに、ステップS705で生成されたケースの項をケース項1、ケース項2、…、ケース項k、ステップS706で生成されたコンテキストノードの項をコンテキストノード項1、コンテキストノード項2、…、コンテキストノード項mとおき(ここで、k、m≧0、j−1=k+mとなる)、処理対象となっているアーギュメントの項として、
CONTEXT[(コンテキストノード項1)/
CONTEXT[(コンテキストノード項2)/

CONTEXT[(コンテキストノード項m)/
(ステップS710で生成されたストラテジまたはエビデンスの項)
・(ケース項1)
・(ケース項2)

・(ケース項k)
]…]]
を生成する。非ケースの子にコンテキストノード以外のものがある場合も、上のCONTEXT[ / ]に代えてステップS707で生成される演算子を用いて、同様にアーギュメントの項を生成する。そして、上位のフローチャートに戻る。
(Step S711) The translation unit 16 generates an argument term to be processed using the case term, the link destination term, the operator, and the root node term generated in steps S705 to S707 and S710. To do. That is, when there is no link in the root node of the argument to be processed, that is, when the process proceeds from step S701 to step S710, the translation unit 16 determines that the term itself generated in step S710 is the argument term. To do. On the other hand, when there is a link at the root node of the argument to be processed, for example, the translation unit 16 further generates the case generated in step S705 when all the non-case children are context nodes. Are the case term 1, the case term 2,..., The case term k, and the context node terms generated in step S706 are the context node term 1, the context node term 2,. k, m ≧ 0, j−1 = k + m), and as an argument term to be processed,
CONTEXT [(context node term 1) /
CONTEXT [(context node term 2) /
...
CONTEXT [(context node term m) /
(Strategy or evidence term generated in step S710)
・ (Case item 1)
・ (Case item 2)
...
・ (Case item k)
] ...]]
Is generated. If there are non-context children other than the context node, an argument term is similarly generated using the operator generated in step S707 instead of the above CONTEXT [/]. Then, the process returns to the upper flowchart.

なお、アーギュメントのルートノードがエビデンスノードであり、かつk>0である場合には、ステップS612と同様にアーギュメントの構造に合わないグラフが処理されたことを表す「エラーアーギュメントの項」を生成してもよく、または、上位のフローチャートの処理を含めてステップS114を異常終了してもよい。   If the root node of the argument is an evidence node and k> 0, an “error argument term” indicating that a graph that does not match the structure of the argument has been processed is generated as in step S612. Alternatively, step S114 may be abnormally terminated including the processing of the upper flowchart.

また、図3〜図8のフローチャートを用いて説明した翻訳の処理は一例であり、それ以外の処理によって、検査対象情報をグラフ情報に翻訳してもよく、または、グラフ情報を検査対象情報に翻訳してもよい。また、図3〜図8のフローチャートにおける翻訳の処理は、ケースが木構造を有する場合の処理である。ケースが有向非巡回グラフの構造を有する場合の処理については後述する。   Further, the translation processing described using the flowcharts of FIGS. 3 to 8 is an example, and the inspection target information may be translated into graph information by other processing, or the graph information may be converted into inspection target information. You may translate. The translation process in the flowcharts of FIGS. 3 to 8 is a process when the case has a tree structure. Processing in the case where the case has a directed acyclic graph structure will be described later.

次に、本実施の形態による整合性検査装置1の動作について、具体例を用いて説明する。この具体例では、構成的型理論に基づく人工言語がAgdaであり、整合性の検査対象がディーケースである場合について説明する。ディーケースは、前述のケースの概念を一部拡張した具体例である。また、この具体例では、整合性の検査対象であるディーケースが、木構造を有する場合について説明する。なお、「ディーケース」概念の本来の表記は「D−Case」であるが、前述の「Case」の具体例として次に定義するD−Caseとの混乱をさけるため、ここではカナで表記する。   Next, the operation of the consistency inspection apparatus 1 according to the present embodiment will be described using a specific example. In this specific example, a case will be described in which the artificial language based on the constructive type theory is Agda and the consistency check target is a de-case. DeeCase is a specific example in which the concept of the aforementioned case is partially expanded. Further, in this specific example, a case will be described in which a de-case that is a consistency inspection target has a tree structure. The original notation of the “D-Case” concept is “D-Case”. However, in order to avoid confusion with the D-Case defined below as a specific example of the above-mentioned “Case”, it is described here with kana. .

また、この具体例における記述についてさらに詳細に説明する。D−Case(前述のCase),Argument,Goal,Strategy,Evidenceは、次のようになる。
D−Case::=Goal∋Argument
|CONTEXT[Context/D−Case]
Argument::=Strategy・D−Case
|Evidence
|CONTEXT[Context/Argument]
Goal::=FormalGoal
|<<FormalGoal/Description>>
Strategy::=FormalStrategy
|<FormalStrategy/Description>
Evidence::=FormalEvidence
|<FormalEvidence/Description>
Further, the description in this specific example will be described in more detail. D-Case (case described above), Argent, Goal, Strategie, and Evidence are as follows.
D-Case :: = Goal∋Argent
| CONTEXT [Context / D-Case]
Argent :: = Strategy { · D-Case }
| Evidence
| CONTEXT [Context / Argent]
Goal :: = FormalGoal
| << FormalGoal / Description >>
Strategie :: = FormalStategy
| <Formal Strategie / Description>
Evidence :: = FormalEvidence
| <FormalEvidence / Description>

なお、Contextは、Descriptionである。また、FormalStrategy,FormalEvidenceはAgda項(Agda言語での式)である。また、FormalGoalは、Set型のAgda項であり、Descriptionは、String型のAgda項である。このように、Descriptionを記述できることによって、検査対象情報をディーケースのグラフ情報に翻訳した際に、そのDescriptionの文字列をノードに対応付けて表示することも可能である。   Note that Context is a description. Further, Formal Strategy and FormalEvidence are Agda terms (expressions in the Agda language). Further, “FormalGoal” is a Set-type Agda term, and “Description” is a String-type Agda term. Thus, when the description can be described, it is possible to display the description character string in association with the node when the inspection target information is translated into the de-case graph information.

この具体例での検査対象情報は、D−Caseに名称をつける定義を含むことができる。さらに、この定義は、パラメータを含むことができる。定義されたD−Caseをその名称で参照できることの効用については、後述する。
この具体例では、D−Caseの定義を、Agda言語における関数定義の宣言によって行う。後者の一般的な記述は、次のようになる。
FunctionDefinition::=TypeSignature
FunctionClause
FunctionClause
Pragma
TypeSignature::=FunctionName:AgdaType
FunctionClause
::=LeftHandSide=RightHandSide
LeftHandSide::=FunctionNamePattern
Pattern::=PatternVariable
|ConstructorNamePattern
The inspection target information in this specific example can include a definition for naming the D-Case. In addition, this definition can include parameters. The utility of being able to refer to the defined D-Case by its name will be described later.
In this specific example, D-Case is defined by declaration of a function definition in the Agda language. The general description of the latter is as follows.
FunctionDefinition :: = [ TypeSignature ]
Function Clause
{ FunctionClasse }
{ Pragma }
TypeSignature :: = FunctionName: AgdaType
Function Clause
:: = LeftHandSide = RightHandSide
LeftHandSide :: = FunctionName { Pattern }
Pattern :: = PatternVariable
| ConstructorName { Pattern }

ここで、 は、オプションであることを示すEBNFの表記である。また、AgdaTypeはSet型のAgda項であり、PatternVariableは、Agdaの識別子であり、ConstructorNameは、Agdaのコンストラクター識別子であり、RightHandSideは、Agdaの表現である。FunctionDefinitionは、TypeSignatureと、1以上のFunctionClauseと、0個以上のPragma(プラグマ)とから構成される。TypeSignatureは、関数名と、その型とを規定する。FunctionClauseから型を推測できるのであれば、そのTypeSignatureは省略してもよい。また、FunctionClauseは、左辺(LeftHandSide)と右辺(RightHandSide)とを等号でつなぐものである。左辺は、0以上のPatternの適用された関数名である。Patternは、PatternVariable(変数)であるか、あるいは、0以上のサブPatternに適用されたコンストラクター識別子である。右辺は、左辺に現れたPatternVariableの使用されたAgda項である。Pragmaは、関数定義宣言を処理するAgda言語処理系に対する指令であり、定義されるところの関数に特定の情報を付帯させるものである。 Here, [ ] is EBNF notation indicating an option. Also, AgdaType is a Set-type Agda term, PatternVariable is an Agda identifier, ConstructorName is an Agda constructor identifier, and RightHandSide is an expression of Agda. The FunctionDefinition is composed of TypeSignature, one or more FunctionClasses, and zero or more Pragmas. TypeSignature defines a function name and its type. If the type can be inferred from the FunctionClassuse, the TypeSignature may be omitted. FunctionClasse connects the left side (LeftHandSide) and the right side (RightHandSide) with an equal sign. The left side is a function name to which 0 or more of Pattern is applied. Pattern is a PatternVariable (variable) or a constructor identifier applied to zero or more sub-Patterns. The right side is an Agda term used by PatternVariable that appears on the left side. Pragma is a command for the Agda language processing system that processes the function definition declaration, and attaches specific information to the function to be defined.

この具体例では、整合性の検査対象の概念も、ディーケースの定義を含むよう拡張される。概念自体は、人工言語(Agda)で検査対象情報として記述される以前の情報であるが、含まれるべき情報の構成要素を便宜上EBNF記法で表すと次のようになる。
ディーケース宣言::=SingleClauseDecl
SingleClauseDecl
::=SingleClauseSignature ディーケース
SingleClauseSignature
::=DCaseNamePattern
PatternVariableDecl
PatternVariableDecl
::=PatternVariable Agda Type
SingleClauseSignatureは、定義されるところのD−Caseの名前D−CaseNameと、それがとり得る0個以上の引数のPatternと、そのPattern中の各PatternVariableとその型の情報をもつ0個以上のPatternVariableDeclとから構成される。SingleClauseDeclは、SingleClauseSignatureと、その中の各PatternVariableをパラメータとして含むディーケースから構成される。これは、上述の説明における関数定義で、FunctionClauseをひとつだけ持つFunctionDefinitionに相当する。(なお、PatternVariableの型は、AgdaTypeでなくともそれに変換可能なものであってもよいが、この具体例では簡単のためAgdaTypeとしている。)
In this example, the concept of consistency check is also extended to include a deecase definition. The concept itself is information before being described as examination target information in an artificial language (Agda), but the components of information to be included are expressed in EBNF notation for convenience as follows.
D-Case Declaration :: = SingleCluseDecl
SingleClauseDecl
:: = SingleClauseSignature DeeCase SingleClauseSignature
:: = DCaseName { Pattern }
{ PatternVariableDecl }
PatternVariableDecl
:: = PatternVariable Agda Type
The SingleClauseSignature is a D-Case name D-CaseName as defined, a Pattern of zero or more arguments that it can take, zero or more PatternVariableDecls with information about each PatternVariable and its type in the Pattern. Consists of The SingleClauseDecl is composed of a SingleClauseSignature and a de-case including each PatternVariable as a parameter. This is a function definition in the above description, and corresponds to FunctionDefinition having only one FunctionClasse. (Note that the PatternVariable type may not be AgdaType but can be converted to it. In this specific example, AgdaType is used for simplicity.)

また、この具体例では、ディーケース宣言を議論構造情報に対応する有向非巡回グラフとして表す場合には、ディーケース宣言中のディーケースのグラフのルートノードの子ノードとして、SingleClauseSignatureに含まれるDCaseNamePattern PatternVariableDeclの情報を有するコンテキストノードを生成するものとする。そのコンテキストノードにおいて、DCaseNamePatternは、Clauseとしてコンテキストに含められ、各パラメータと、その型とを示すPattenVariableDeclは、Parametersとしてコンテキストに含められるものとする。 Also, in this specific example, when the deaase declaration is expressed as a directed acyclic graph corresponding to the discussion structure information, the DCaseName included in the SingleClaseSignature is used as a child node of the root node of the deaase graph in the deacase declaration. Assume that a context node having information of { Pattern } { PatternVariableDecl } is generated. In the context node, DCaseName { Pattern } is included in the context as a Clause, and { PatternVariableDecl } indicating each parameter and its type is included in the context as Parameters.

次に、Agdaで記述された検査対象情報において、ケースに応じた記述の特定の処理(ステップS201)について簡単に説明する。まず、この具体例では、関数FunctionNameの関数定義に、それがケースに応じた記述を含むという情報を付加するPragma「{−# DCASE FunctionName root #−}」を導入する。翻訳部16は、検査対象情報において、このようなPragmaをもつFunctionDefinitionを見つける。ここでは、そのようなFunctionDefinitionが、一だけFunctionClauseを持つ場合について説明する。このFunctionClauseのRightHandSideであるところのAgda項が、D−Caseとして特定される。これがステップS201でいうケースに応じた記述となるため、それについて図3のフローチャートにおけるステップS202以降の処理が実行されることになる。その結果として、このD−Caseに対応するディーケースのグラフ(グラフ情報)を得る。   Next, in the inspection object information described in Agda, specific description processing (step S201) according to the case will be briefly described. First, in this specific example, Pragma “{− # DCASE FunctionName root # −}” is added to the function definition of the function FunctionName, which adds information that includes a description according to the case. The translation unit 16 finds a FunctionDefinition having such a Pragma in the inspection object information. Here, the case where such FunctionDefinition has only one FunctionClass will be described. The Agda term that is the RightHandSide of this FunctionClass is specified as D-Case. Since this is a description corresponding to the case in step S201, the processing from step S202 onward in the flowchart of FIG. 3 is executed. As a result, a deaase graph (graph information) corresponding to the D-Case is obtained.

また、この具体例では、翻訳部16は、一のそのようなFunctionDefinition全体を、一のディーケース宣言(SingleClauseDecl)のグラフに変換するように拡張されている。具体的には、翻訳部16は、LeftHandSideのFunctionNameをSingleClauseSignatureのDCaseNameとし、LeftHandSideのPatternをSingleClauseSignatureのPatternとし、LeftHandSideとTypeSignatureから、Agdaプルーフチェッカーの機能を用いて、SingleClauseSignatureのPatternVariableDeclを推測して生成して、SingleClauseSignatureを構成する。翻訳部16は、これを上述の説明のようなコンテキストノードとし、RightHandSideであるところのAgda項に対応するグラフのルートノードに子として追加する。 Further, in this specific example, the translation unit 16 is extended to convert one such FunctionDefinition as a whole into a graph of one DeeCase declaration (SingleClauseDecl). Specifically, the translation unit 16, a FunctionName of LeftHandSide the DCaseName of SingleClauseSignature, the {Pattern} of LeftHandSide and {Pattern} of SingleClauseSignature, from LeftHandSide and TypeSignature, using the function of Agda proof checker, the SingleClauseSignature {PatternVariableDecl } Is generated by constructing a Single ClauseSignature. The translation unit 16 makes this a context node as described above, and adds it as a child to the root node of the graph corresponding to the Agda term that is RightHandSide.

次に、この具体例における一の特定のD−Caseに基づいて詳細を説明する。ユーザは、キーボードを操作することにより、図10で示される検査対象情報200を入力し、その検査対象情報200が受付部18で受け付けられ、検査対象記憶部11に蓄積され、表示部17によって表示されたとする(ステップS104〜S106)。図10において、検査対象情報200には、モデル情報201と、議論構造情報202とが含まれている。モデル情報201において、TopGoal,SubGoal−A,SubGoal−Bは、Set型を有していること、つまり、各々それ自体が型であることが宣言されている。Agda言語は命題を型として扱うため、この宣言は、各々をゴールとして宣言することになる。また、topStrategyは、SubGoal−A型のデータをもらい、SubGoal−B型のデータをもらい、TopGoal型のデータを返す関数の型を有していることが宣言されている。また、Evidence−Aは、SubGoal−A型を有し、Evidence−Bは、SubGoal−B型を有していることが宣言されている。また、議論構造情報202では、図11で示される木構造のディーケースのグラフ情報がAgdaによって記述されている。なお、この図10で示される検査対象情報200は、エラーの存在しないものである。したがって、ユーザが、検査対象情報について証明検査をする旨の指示を入力し、それに応じて検査部12が証明検査を行ったとしても(ステップS101,S102)、エラーは検出されないことになる(ステップS103)。なお、例えば、議論構造情報202において、Evidence−Aを、Evidence−Bに書き間違えていたとする。そのような検査対象情報200について証明検査を行った場合には(ステップS101,S102)、議論構造情報202の「SubGoal−A∋Evidence−B」における「Evidence−B」がエラーであることが検知され、そのEvidence−Bの箇所がハイライト表示されることになる(ステップS103)。そのハイライト表示は,例えば、その箇所を赤字で表示することであってもよい。なお、ハイライト表示されていない文字は、赤字以外で表示されているものとする。ユーザは、そのハイライト表示された「Evidence−B」を見ることによって、そこにエラーの存在することを容易に把握することができ、そのEvidence−BをEvidence−Aに書き換えることによって、エラーを解消することができる(ステップS104〜S106)。   Next, details will be described based on one specific D-Case in this specific example. The user operates the keyboard to input the inspection target information 200 shown in FIG. 10. The inspection target information 200 is received by the receiving unit 18, stored in the inspection target storage unit 11, and displayed by the display unit 17. Suppose that it was done (steps S104-S106). In FIG. 10, the inspection target information 200 includes model information 201 and discussion structure information 202. In the model information 201, it is declared that TopGoal, SubGoal-A, and SubGoal-B have a Set type, that is, each is a type. Since the Agda language treats propositions as types, this declaration declares each as a goal. Moreover, it is declared that topState has a function type that obtains SubGoal-A type data, obtains SubGoal-B type data, and returns TopGoal type data. Further, it is declared that Evidence-A has a SubGoal-A type, and Evidence-B has a SubGoal-B type. Further, in the discussion structure information 202, the dea graph information of the tree structure shown in FIG. 11 is described in Agda. It should be noted that the inspection object information 200 shown in FIG. 10 has no error. Therefore, even if the user inputs an instruction to perform a proof check on the inspection target information and the check unit 12 performs a proof check accordingly (Steps S101 and S102), no error is detected (Step S101). S103). For example, in the discussion structure information 202, it is assumed that Evidence-A is mistakenly written as Evidence-B. When a certification inspection is performed on such inspection target information 200 (steps S101 and S102), it is detected that “Evidence-B” in “SubGoal-A∋Evidence-B” of the discussion structure information 202 is an error. Then, the location of Evidence-B is highlighted (step S103). The highlight display may be, for example, displaying the portion in red. Note that characters that are not highlighted are displayed in non-red characters. The user can easily grasp the existence of an error by viewing the highlighted “Evidence-B”, and the error can be rewritten by rewriting the evidence-B to evidence-A. It can be eliminated (steps S104 to S106).

次に、検査対象情報200をグラフ情報に翻訳する処理について説明する。この具体例で用いるグラフ情報のデータ形式は、上述の説明で参照したD−Case Editorの用いるXML形式に準じる。図10で示される検査対象情報200が検査対象記憶部11で記憶されている状態において、ユーザが、検査対象情報をグラフ情報に翻訳する旨の指示を整合性検査装置1に入力したとする。すると、その指示は受付部18で受け付けられ、翻訳部16に渡される。そして、翻訳部16は、検査対象情報をグラフ情報に翻訳するタイミングであると判断し(ステップS110)、検査対象情報をグラフ情報に翻訳する処理を行う(ステップS111)。具体的には、翻訳部16は、検査対象情報200において、Pragma{−# DCASE my−D−Case root #−}を特定し、関数名(FunctionName)「my−D−Case」を取得する。また、翻訳部16は、その関数名を用いて、LeftHandSideである「my−D−Case」を特定し、それと等号で関係付けられているRightHandSideであるD−Caseを特定する(ステップS201)。すなわち、特定されたD−Caseは、
TopGoal∋
topStrategy
・(SubGoal−A∋Evidence−A)
・(SubGoal−B∋Evidence−B)
である。
Next, a process for translating the inspection object information 200 into graph information will be described. The data format of the graph information used in this specific example conforms to the XML format used by the D-Case Editor referred to in the above description. Assume that the user inputs an instruction to the inspection apparatus 1 to translate the inspection object information into graph information in the state where the inspection object information 200 shown in FIG. 10 is stored in the inspection object storage unit 11. Then, the instruction is received by the receiving unit 18 and passed to the translation unit 16. And the translation part 16 judges that it is a timing which translates test object information into graph information (step S110), and performs the process which translates test object information into graph information (step S111). Specifically, the translation unit 16 specifies Pragma {-# DCASE my-D-Case root #-} in the inspection target information 200 and acquires a function name (FunctionName) “my-D-Case”. Moreover, the translation part 16 specifies "my-D-Case" which is LeftHandSide using the function name, and specifies D-Case which is RightHandSide linked | related with the equal sign (step S201). . That is, the specified D-Case is
TopGoal∋
topStrategy
・ (SubGoal-A∋Evidence-A)
・ (SubGoal-B∋Evidence-B)
It is.

その後、翻訳部16は、図示しない経路を介して実行部14に対して、検査対象情報200を実行するかどうか判断するように指示する。すると、実行部14は、検査対象記憶部11で記憶されている検査対象情報200を参照し、議論構造情報202において、プログラムで記載されている箇所は存在しないため、実行する必要がないと判断し(ステップS202)、その結果を図示しない経路を介して翻訳部16に渡す。   Thereafter, the translation unit 16 instructs the execution unit 14 to determine whether to execute the inspection target information 200 via a route (not shown). Then, the execution unit 14 refers to the inspection target information 200 stored in the inspection target storage unit 11 and determines that it is not necessary to execute the discussion structure information 202 because there is no portion described in the program. (Step S202), and the result is passed to the translation unit 16 via a route (not shown).

その判断結果を受け取ると、翻訳部16は、上記のD−Caseに対してケースに応じた記述の処理(ステップS204)を行う。具体的には、翻訳部16は、パターンマッチングにより、「g∋t」のパターンを特定し(ステップS301)、そのパターンのgに対応するゴールノードを生成する(ステップS302)。すなわち、翻訳部16は、図12Aで示されるグラフ情報300におけるTopGoalに対応するノードの情報301を生成する。ノードの情報301において、type="Goal"は、そのノードがゴールノードであることを示している。ストラテジノードの場合には、type="Strategy"となり、エビデンスノードの場合には、type="Evidence"となり、コンテキストノードの場合には、type="Context1"となる(なお、「Context」ではなく、「Context1」となる理由については後述する)。id="001"は、ノードの識別子であり、ノードの生成時に、各ノードを識別できるように付与されるものである。この具体例では、各ノードの情報を生成するごとに、idが1ずつインクリメントされるものとする。name="G1"は、グラフ情報の表示の際に表示されるノードの名称である。このノードの名称も、ノードの生成時に適宜、生成されるものである。この具体例では、typeの先頭の文字と数字とを組み合わせ、重複しないように生成される。value="TopGoal"は、検査対象情報200における項の値である。なお、タグ<dcase:description>と、タグ</dcase:description>との間には何も情報が含まれていないが、ゴールの項が<<FormalGoal/Description>>のように記述されていた場合には、そのDescription(記述)が、両タグの間に含められることになる。他のノードの情報を生成する際にも、翻訳部16は、typeやid、nameを生成し、検査対象情報200からDescriptionや項の値を読み出すことによって、そのノードの情報を生成するものとする。   Upon receiving the determination result, the translation unit 16 performs a description process (step S204) according to the case for the D-Case. Specifically, the translation unit 16 specifies a pattern “g∋t” by pattern matching (step S301), and generates a goal node corresponding to g of the pattern (step S302). That is, the translation unit 16 generates node information 301 corresponding to TopGoal in the graph information 300 illustrated in FIG. 12A. In the node information 301, type = “Goal” indicates that the node is a goal node. In the case of a strategy node, type = “Strategy”, in the case of an evidence node, type = “Evidence”, and in the case of a context node, type = “Context1” (instead of “Context”) The reason why it is “Context 1” will be described later). id = “001” is an identifier of a node, and is given so that each node can be identified when the node is generated. In this specific example, it is assumed that id is incremented by 1 each time information of each node is generated. “name =“ G1 ”” is the name of the node displayed when displaying the graph information. The name of this node is also appropriately generated when the node is generated. In this specific example, the first character of the type and a number are combined and generated so as not to overlap. value = “TopGoal” is the value of the term in the inspection object information 200. Note that although no information is included between the tag <dcase: description> and the tag </ dcase: description>, the goal term was described as << FormalGoal / Description >> In that case, the Description will be included between both tags. Also when generating information of another node, the translation unit 16 generates type, id, and name, and generates information of the node by reading the description and the value of the term from the inspection target information 200. To do.

次に、翻訳部16は、残りがケースであるかどうか判断する。この場合には、ステップS301において、「g∋t」のパターンが特定されたため、残りはアーギュメントであるため、翻訳部16は、残りはケースではないと判断して、アーギュメントに応じた記述の処理を行う(ステップS303,S305)。具体的には、翻訳部16は、残りの部分である
topStrategy
・(SubGoal−A∋Evidence−A)
・(SubGoal−B∋Evidence−B)
について、パターンマッチングにより、「f・t・t」のパターンを特定し(ステップS401)、n=2であるため、そのパターンのfに対応するストラテジノードを生成する(ステップS402)。すなわち、翻訳部16は、図12Aで示されるグラフ情報300におけるtopStrategyに対応するノードの情報302を生成する。そのノードの情報302の生成方法は、前述したノードの情報301の生成方法と同様である。その後、翻訳部16は、ステップS401においてパターン「f・t・t」が特定されたため、生成したノードはリーフではなく、残りはケースであると判断し(ステップS403,S404)、まずtである
SubGoal−A∋Evidence−A
について、ケースに応じた記述の処理を行う(ステップS405)。
Next, the translation unit 16 determines whether or not the rest is a case. In this case, since the pattern “g∋t” has been specified in step S301, the rest is an argument, so the translation unit 16 determines that the rest is not a case, and processes the description according to the argument. (Steps S303 and S305). Specifically, the translation unit 16 uses the remaining part, topStrategy.
・ (SubGoal-A∋Evidence-A)
・ (SubGoal-B∋Evidence-B)
For pattern, a pattern of “f · t 1 · t 2 ” is specified by pattern matching (step S401), and since n = 2, a strategy node corresponding to f of the pattern is generated (step S402). That is, the translation unit 16 generates node information 302 corresponding to topStrategy in the graph information 300 illustrated in FIG. 12A. The generation method of the node information 302 is the same as the generation method of the node information 301 described above. After that, because the pattern “f · t 1 · t 2 ” is specified in step S401, the translation unit 16 determines that the generated node is not a leaf and the rest is a case (steps S403 and S404). 1 is SubGoal-A−Evidence-A
The description process according to the case is performed (step S405).

具体的には、翻訳部16は、パターンマッチングにより、「g∋t」のパターンを特定し(ステップS301)、そのパターンのgに対応するゴールノードを生成する(ステップS302)。すなわち、翻訳部16は、グラフ情報300におけるSubGoal−Aに対応するノードの情報303を生成する。そして、翻訳部16は、残りがアーギュメントであると判断し、そのアーギュメントに応じた記述の処理を行う(ステップS303,S304)。具体的には、翻訳部16は、残りの部分である
Evidence−A
について、パターンマッチングにより、「f」のパターンを特定し(ステップS401)、n=0であるため、そのパターンのfに対応するエビデンスノードを生成する(ステップS402)。すなわち、翻訳部16は、グラフ情報300におけるEvidence−Aに対応するノードの情報304を生成する。その後、翻訳部16は、エビデンスノードを生成したため、リーフであると判断し(ステップS403)、ゴールノード(SubGoal−A)から、エビデンスノード(Evidence−A)へのリンクを生成する(ステップS306)。すなわち、翻訳部16は、図12Bで示されるグラフ情報300におけるSubGoal−AからEvidence−Aまでのリンクの情報311を生成する。リンクの情報311において、source="003"は、リンク元のノード、すなわち、SubGoal−Aのノードの識別子である。また、target="004"は、リンク先のノード、すなわち、Evidence−Aのノードの識別子である。id="Link−003−004"は、リンクの識別子であり、各リンクを識別できるように、リンクの生成時に、リンク元のノードの識別子とリンク先のノードの識別子とを用いて生成される。name="Link−003−004"は、リンクの名称であり、この具体例では、リンクの識別子と同じである。他のリンクの情報を生成する際にも、翻訳部16は、リンク元の識別子とリンク先の識別子とを用いて、sourceやtarget、id等を生成するものとする。
Specifically, the translation unit 16 specifies a pattern “g∋t” by pattern matching (step S301), and generates a goal node corresponding to g of the pattern (step S302). That is, the translation unit 16 generates node information 303 corresponding to SubGoal-A in the graph information 300. Then, the translation unit 16 determines that the remainder is an argument, and performs a description process according to the argument (steps S303 and S304). Specifically, the translation unit 16 uses the remaining part of the evidence-A.
Is identified by pattern matching (step S401), and since n = 0, an evidence node corresponding to f of the pattern is generated (step S402). That is, the translation unit 16 generates node information 304 corresponding to the evidence-A in the graph information 300. Thereafter, the translation unit 16 has generated the evidence node, and thus determines that the leaf is a leaf (step S403), and generates a link from the goal node (SubGoal-A) to the evidence node (Evidence-A) (step S306). . That is, the translation unit 16 generates link information 311 from SubGoal-A to Evidence-A in the graph information 300 illustrated in FIG. 12B. In the link information 311, source = “003” is an identifier of a link source node, that is, a node of SubGoal-A. Further, target = “004” is an identifier of a link destination node, that is, a node of Evidence-A. id = “Link-003-004” is a link identifier, and is generated using a link source node identifier and a link destination node identifier at the time of link generation so that each link can be identified. . “name =“ Link-003-004 ”” is the name of the link, and in this specific example, is the same as the identifier of the link. Also when generating information of other links, the translation unit 16 generates source, target, id, and the like using the link source identifier and the link destination identifier.

その後、tに対応するケースに応じた記述の処理が終了したため、翻訳部16は、そのケースと、topStragegyに対応するストラテジノードとの間のリンクを生成する(ステップS406)。すなわち、翻訳部16は、図12Bで示されるグラフ情報300におけるtopStragegyから、tのルートであるSubGoal−Aまでのリンクに応じたリンクの情報312を生成する。 Then, since the processing of the description in accordance with the case corresponding to t 1 is terminated, the translation unit 16 generates a link between its case, a strategy node corresponding to TopStragegy (step S406). That is, the translation unit 16, from topStragegy in the graph information 300 shown in FIG. 12B, to generate a link information 312 corresponding to the links to the subgoal-A is the root of t 1.

その後、翻訳部16は、未処理のケースtがあるため(ステップS407)、そのtである
SubGoal−B∋Evidence−B
について、tの場合と同様に、ケースに応じた記述の処理を行う(ステップS405)。
Then, the translation unit 16, since there is a case t 2 of the untreated (step S407), SubGoal-B∋Evidence-B its t 2
For, as in the case of t 1, it performs a process described in accordance with the case (step S405).

具体的には、翻訳部16は、「g∋t」のパターンを特定し(ステップS301)、そのパターンのgに対応するゴールノードに応じたノードの情報305を生成する(ステップS302)。そして、翻訳部16は、残りがアーギュメントであると判断し、そのアーギュメントに応じた記述の処理を行う(ステップS303,S304)。具体的には、翻訳部16は、残りの部分である
Evidence−B
について、「f」のパターンを特定し(ステップS401)、そのパターンのfに対応するエビデンスノードに応じたノードの情報306を生成する(ステップS402)。その後、翻訳部16は、エビデンスノードを生成したため、リーフであると判断し(ステップS403)、ゴールノード(SubGoal−B)から、エビデンスノード(Evidence−B)へのリンクに応じたリンクの情報313を生成する(ステップS306)。そして、tに対応するケースに応じた記述の処理が終了したため、翻訳部16は、topStragegyから、tのルートであるSubGoal−Bまでのリンクに応じたリンクの情報314を生成する(ステップS406)。
Specifically, the translation unit 16 identifies the pattern “g∋t” (step S301), and generates node information 305 corresponding to the goal node corresponding to g of the pattern (step S302). Then, the translation unit 16 determines that the remainder is an argument, and performs a description process according to the argument (steps S303 and S304). Specifically, the translation unit 16 uses the remaining part of the evidence-B.
Is identified (step S401), and node information 306 corresponding to the evidence node corresponding to f of the pattern is generated (step S402). After that, the translation unit 16 has generated the evidence node, and thus determines that it is a leaf (step S403), and link information 313 corresponding to the link from the goal node (SubGoal-B) to the evidence node (Evidence-B). Is generated (step S306). Then, since the processing of the description in accordance with the case corresponding to t 2 is completed, the translation unit 16, from TopStragegy, generates information 314 of the link corresponding to the link up subgoal-B is the root of t 2 (step S406).

これらの処理によって、topStragegy以下の各ノードや各リンクを生成する処理が終了したため、翻訳部16は、ゴールノード(TopGoal)からアーギュメントのルートであるストラテジノード(topStragegy)までのリンクに応じたリンクの情報315を生成する(ステップS306)。   With these processes, the process of generating each node and each link below the topStorage is completed, so the translation unit 16 determines the link corresponding to the link from the goal node (TopGoal) to the strategy node (topStorage) that is the root of the argument. Information 315 is generated (step S306).

その後、翻訳部16は、検査対象情報200にモデル情報やD−Caseの名称が存在するため、そのモデル情報201に応じたタグや、D−Caseの名称に応じたコンテキストノードを追加すると判断し(ステップS205)、LeftHandSideに対応する「my−D−Case」を含むコンテキストノードに応じたノードの情報307と、D−CaseのルートであるTopGoalのゴールノードから、そのコンテキストノードまでのリンクに応じたリンクの情報316とを生成する。なお、そのコンテキストノードの情報307において、演算子CONTEXT[ / ]から生成されたコンテキストノードと区別するため、type="context2"としている。なお、演算子CONTEXT[ / ]から生成されたコンテキストノードから生成されたコンテキストノードでは、type="context1"になるものとする。また、そのコンテキストノードでは、そのLeftHandSideの情報(ここでは、D−Caseの名称)がvalueではなく、descriptionに含められるものとする。さらに、翻訳部16は、グラフ情報300において、モデル情報201に応じたプロパティーの情報321を生成する(ステップS206)。このようにして、グラフ情報300が生成されることになる。なお、プロパティーの情報321において、「&#xD;&#xA;」は、改行の文字コードであり、「&#8594;」は右矢印「→」の文字コードである。また、グラフ情報300の先頭と後端のD−Caseに関するタグや、ノードやリンクの情報の前後に記載されているタグ等は、グラフ情報300を生成するはじめの時点において生成されてもよく、あるいは、ノードやリンク、プロパティー等のタグが生成された後に生成されてもよい。その後、表示部17は、グラフ記憶部15で記憶されているグラフ情報300を読み出し、各ノードの親子関係を取得して、各ノードの親子関係を示す図11の画像を表示する(ステップS112)。図11において、type="Goal"であるノード211,214,216は、矩形で表示され、type="Strategy"であるノード213は、平行四辺形で表示され、type="Evidence"であるノード215,217は、楕円で表示され、type="ContextN"(Nは1以上の整数)であるノード212は、角丸四角形で表示される。それらの図形は、図示しない記録媒体において記憶されており、表示部17は、それらの図形を適宜、読み出すことによって、各ノードに応じた図形を表示してもよい。また、表示部17は、その図形中に、ノードの種類(type)と、ノードの名称(name)、ノードの値(value)、ノードの記述(Description)に応じた文字列を生成して表示する。また、表示部17は、グラフ情報300に含まれる各リンクの情報に応じて、各ノードをつなぐリンクの図形(矢印の図形)221〜226をも生成して表示する。このようにして、ユーザは、検査対象情報200に対応したグラフ情報300を知ることができる。なお、この具体例では、モデル情報がグラフ情報においてはすべて不可視情報となっているため、グラフには表示されないことになる。   After that, the translation unit 16 determines that a tag corresponding to the model information 201 or a context node corresponding to the name of the D-Case is added because the model information or the name of the D-Case exists in the inspection target information 200. (Step S205), according to the link from the goal node of TopGoal, which is the root of D-Case, to the context node, and the node information 307 corresponding to the context node including “my-D-Case” corresponding to LeftHandSide Link information 316 is generated. In the context node information 307, type = “text2” is set in order to distinguish it from the context node generated from the operator CONTEXT [/]. In the context node generated from the context node generated from the operator CONTEXT [/], type = “context1” is assumed. Also, in the context node, the LeftHandSide information (in this case, the name of D-Case) is not included in the value but is included in the description. Further, the translation unit 16 generates property information 321 corresponding to the model information 201 in the graph information 300 (step S206). In this way, the graph information 300 is generated. In the property information 321, “&#xD; &#xA;” is a character code of a line feed, and “&#8594;” is a character code of a right arrow “→”. In addition, tags related to the D-Case at the beginning and the rear end of the graph information 300, tags described before and after the node and link information, and the like may be generated at the beginning of generating the graph information 300. Alternatively, it may be generated after tags such as nodes, links, and properties are generated. Thereafter, the display unit 17 reads the graph information 300 stored in the graph storage unit 15, acquires the parent-child relationship of each node, and displays the image of FIG. 11 showing the parent-child relationship of each node (step S112). . In FIG. 11, nodes 211, 214, and 216 with type = “Goal” are displayed as rectangles, nodes 213 with type = “Strategie” are displayed as parallelograms, and nodes with type = “Evidence”. Nodes 215 and 217 are displayed as ellipses, and a node 212 where type = “ContextN” (N is an integer equal to or greater than 1) is displayed as a rounded rectangle. These graphics are stored in a recording medium (not shown), and the display unit 17 may display the graphics corresponding to each node by appropriately reading the graphics. The display unit 17 generates and displays a character string corresponding to the node type (type), the node name (name), the node value (value), and the node description (Description) in the figure. To do. The display unit 17 also generates and displays link graphics (arrow graphics) 221 to 226 connecting the nodes in accordance with the information of each link included in the graph information 300. In this way, the user can know the graph information 300 corresponding to the inspection target information 200. In this specific example, the model information is all invisible information in the graph information, and thus is not displayed in the graph.

なお、図12A,図12Bで示される、XMLで記述されたグラフ情報300は、実際のD−Case Editorで用いられるXMLの表記とは細部において異なっているが、実質的には同様のものである。また、グラフ情報において、ケースに含まれる各ノードの親子関係を示す方法は問わない。したがって、図12A,図12Bで示される以外のデータ構造によって、グラフ情報を示してもよいことは言うまでもない。また、そのXMLで記述されたグラフ情報300を図11で示されるように図的に表示する際に、descriptionのタグで特定される文字列の表示と、図11で示されるvalueの表示とを切り替えられるようにしてもよく、または、そうではなく、両方を一緒に表示するようにしてもよい。前者の場合であっても、コンテキストノードについては、descriptionのタグで特定される文字列を絶えず表示するようにしてもよい。   The graph information 300 described in XML shown in FIGS. 12A and 12B is different from the XML notation used in the actual D-Case Editor in details, but is substantially the same. is there. In the graph information, there is no limitation on the method for indicating the parent-child relationship of each node included in the case. Therefore, it goes without saying that the graph information may be indicated by a data structure other than that shown in FIGS. 12A and 12B. When the graph information 300 described in XML is displayed graphically as shown in FIG. 11, the display of the character string specified by the description tag and the display of the value shown in FIG. It may be possible to switch, or alternatively, both may be displayed together. Even in the former case, for the context node, the character string specified by the description tag may be continuously displayed.

次に、グラフ情報を検査対象情報に翻訳する処理について説明する。ここでは、グラフ記憶部15において、図12A,図12Bで示されるグラフ情報300が記憶されているものとする。なお、そのグラフ情報300は、例えば、ユーザが、D−Case Editor等を用いて入力したものであってもよい(ステップS107〜S109)。そして、ユーザが、グラフ情報を検査対象情報に翻訳する旨の指示を整合性検査装置1に入力したとする。すると、その指示は受付部18で受け付けられ、翻訳部16に渡される。そして、翻訳部16は、グラフ情報を検査対象情報に翻訳するタイミングであると判断し(ステップS113)、グラフ情報を検査対象情報に翻訳する処理を行う(ステップS114)。具体的には、翻訳部16は、グラフ情報300のリンクの情報311〜316を参照し、sourceには存在するがtargetには存在しないノード、すなわち、ルートノードを特定する(ステップS501)。この場合には、id="001"のノードがルートノードとなる。そのルートノードはディーケースのグラフのルートノードでもあるため、翻訳部16は、ケースの処理を行う(ステップS502)。具体的には、id="001"である特定したルートノードがsourceである1番目のリンクの情報315を特定し、そのsourceのノードと、targetのノードとを特定する。この場合には、sourceのノードがゴールノードであり、targetのノードがストラテジノードとなる。したがって、翻訳部16は、(親ノード、子ノード)=(ゴールノード、ストラテジノード)のパターンを特定する(ステップS601,S602)。この場合には、リンク先がアーギュメントであるため、翻訳部16は、アーギュメントの処理を行う(ステップS603,S604)。具体的には、アーギュメントのルートノード(id="002"のストラテジノード)をリンク元とするリンクの情報312,314が存在するため、翻訳部16は、アーギュメントのルートノードにリンク先のノードが存在すると判断し(ステップS701)、そのリンクのうち、1番目のリンクの情報312を特定する(ステップS702,S703)。また、翻訳部16は、その特定したリンクのリンク先がケースであるかどうか判断する(ステップS704)。すなわち、翻訳部16は、特定したリンクの情報312からリンク先(target)のid="003"を取得し、そのid="003"のノードの情報303を特定する。そして、その特定したノードの情報303に含まれるノードの種類(type)がゴールであるため、翻訳部16は、リンク先がケースであると判断する。そして、そのリンク先のケースの処理を行う(ステップS705)。   Next, a process for translating graph information into inspection object information will be described. Here, it is assumed that the graph storage unit 15 stores the graph information 300 shown in FIGS. 12A and 12B. Note that the graph information 300 may be input by the user using a D-Case Editor or the like (steps S107 to S109), for example. Then, it is assumed that the user inputs an instruction for translating the graph information into the inspection target information to the consistency inspection apparatus 1. Then, the instruction is received by the receiving unit 18 and passed to the translation unit 16. And the translation part 16 judges that it is a timing which translates graph information into test object information (step S113), and performs the process which translates graph information into test object information (step S114). Specifically, the translation unit 16 refers to the link information 311 to 316 of the graph information 300, and identifies a node that exists in the source but does not exist in the target, that is, a root node (step S501). In this case, the node with id = “001” becomes the root node. Since the root node is also the root node of the de-case graph, the translation unit 16 performs the case processing (step S502). Specifically, the first link information 315 whose id = “001” is the specified root node is specified, and the source node and the target node are specified. In this case, the source node is a goal node, and the target node is a strategy node. Therefore, the translation unit 16 specifies a pattern of (parent node, child node) = (goal node, strategy node) (steps S601 and S602). In this case, since the link destination is an argument, the translation unit 16 performs an argument process (steps S603 and S604). Specifically, since link information 312 and 314 with the root node of the argument (the strategy node with id = “002”) as the link source exists, the translation unit 16 determines that the link destination node is the root node of the argument. It is determined that it exists (step S701), and the information 312 of the first link among the links is specified (steps S702 and S703). Moreover, the translation part 16 judges whether the link destination of the specified link is a case (step S704). That is, the translation unit 16 obtains the link target id = “003” from the specified link information 312 and specifies the node information 303 of the id = “003”. Since the node type (type) included in the specified node information 303 is a goal, the translation unit 16 determines that the link destination is a case. Then, the linked case is processed (step S705).

具体的には、翻訳部16は、処理対象であるケースのルートノード(id="003"のノード)がsourceである1番目のリンクの情報311を特定し、そのsourceのノードと、targetのノードと関係、すなわち、(親ノード、子ノード)=(ゴールノード、エビデンスノード)のパターンを特定する(ステップS601,S602)。この場合には、リンク先がアーギュメントであるため、翻訳部16は、アーギュメントの処理を行う(ステップS603,S604)。具体的には、アーギュメントのルートノード(id="004"のエビデンスノード)をリンク元とするリンクの情報が存在しないため、翻訳部16は、アーギュメントのルートノードにリンク先のノードが存在しないと判断し(ステップS701)、そのルートノードに応じた項、すなわち、
Evidence−A
を生成する(ステップS710)。この項は、そのルートノードのノードの情報304のvalueを用いて生成される。この場合には、その項がそのままアーギュメントの項となる(ステップS711)。その後、翻訳部16は、そのノード(id="004"のエビデンスノード)をリンク先とするリンクの情報311のパターン(ゴールノード、エビデンスノード)に応じた演算子「∋」を生成する(ステップS606)。また、id="003"のゴールノードには、それ以上のリンク先が存在しないため(ステップS607,S608)、翻訳部16は、そのid="003"のゴールノードに応じたノードの情報303を用いて、そのノードに応じた項「SubGoal−A」を生成する(ステップS609)。そして、リンク先のアーギュメントが1個であり、リンク先のアーギュメント以外の項は存在しないため(ステップS610)、翻訳部16は、リンク先のアーギュメントの項と、ゴールノードの項とを演算子「∋」でつなぐケースの項を生成する(ステップS611)。そのケースの項は、
SubGoal−A∋Evidence−A
となる。その後、翻訳部16は、そのid="003"のゴールノードをリンク先とするリンクの情報312のパターン(ストラテジノード、ゴールノード)に応じた演算子「・」を生成し、それを一時的に図示しない記録媒体に蓄積する(ステップS707)。また、翻訳部16は、id="002"のストラテジノードをリンク元とする2番目のリンクの情報314を特定する(ステップS708,S709,S703)。また、翻訳部16は、その特定したリンクのリンク先がid="005"のゴールノードであるため、リンク先がケースであると判断する(ステップS704)。そして、そのリンク先のケースの処理を行う(ステップS705)。前述の処理と同様に、このケースの処理によって、翻訳部16は、id="006"のエビデンスノードに対応する項と、そのエビデンスノードをリンク先とするリンクのパターンに応じた演算子「∋」と、そのリンクのリンク元であるid="005"のゴールノードに対応する項と、そのゴールノードをリンク先とするリンクのパターンに応じた演算子「・」とを生成し、それを一時的に図示しない記録媒体に蓄積する(ステップS707)。その後、翻訳部16は、id="002"のストラテジノードに応じた項を生成する(ステップS710)。リンク先は、ケースの項が2個のみであるため、翻訳部16は、リンク先の2個のケースの項と、ストラテジノードの項とを演算子「・」でそれぞれつなぐアーギュメントの項を生成する(ステップS711)。そのアーギュメントの項は、
topStragegy
・(SubGoal−A∋Evidence−A)
・(SubGoal−B∋Evidence−B)
となる。そして、id="002"のストラテジノードをルートノードとするアーギュメントの処理が終了したため、翻訳部16は、そのストラテジノードがリンク先であるリンクの情報315に応じた演算子「∋」を生成し(ステップS606)、さらに、全体のケースのルートノードであるid="001"のゴールノードに応じた項「TopGoal」を生成する(ステップS607〜S609)。そして、リンク先のアーギュメントが1個であり、リンク先のアーギュメント以外の項は存在しないため(ステップS610)、翻訳部16は、リンク先のアーギュメントの項と、ゴールノードの項とを演算子「∋」でつなぐケースの項を生成する(ステップS611)。そのケースの項は、
TopGoal∋
topStragegy
・(SubGoal−A∋Evidence−A)
・(SubGoal−B∋Evidence−B)
となる。なお、グラフ情報300には、コンテキストノードに対応したノードの情報307と、それに応じたリンクの情報316とが存在するが、そのコンテキストの種類(type)は、「Context2」であるため、翻訳部16は、通常の演算子CONTENT「 / 」を生成する処理を行わない。そして、そのtype="Context2"のノードの情報307と、プロパティーの情報321とが存在するため、翻訳部16は、検査対象情報に追加する情報が存在すると判断し(ステップS503)、type="Context2"のノードの情報307のdescription「my−D−Case」が左辺となり、その左辺と、すでに生成された上述のD−Caseの記述とを等号でつなぐ。また、プロパティーの情報321からモデル情報を読み出し、検査対象情報に追加する(ステップS504)。その結果、最終的な検査対象情報は、次のようになる。このようにして、グラフ情報から検査対象情報への翻訳が行われる。
Specifically, the translation unit 16 specifies the information 311 of the first link whose source is the root node (node of id = “003”) of the case to be processed, the source node, and the target The node and the relationship, that is, the pattern of (parent node, child node) = (goal node, evidence node) is specified (steps S601 and S602). In this case, since the link destination is an argument, the translation unit 16 performs an argument process (steps S603 and S604). Specifically, since there is no link information whose link source is the root node of the argument (evidence node with id = “004”), the translation unit 16 determines that there is no link destination node in the root node of the argument. Judgment (step S701), a term corresponding to the root node, that is,
Evidence-A
Is generated (step S710). This term is generated using the value of node information 304 of the root node. In this case, the term becomes an argument term as it is (step S711). Thereafter, the translation unit 16 generates an operator “∋” corresponding to the pattern (goal node, evidence node) of the link information 311 with the node (evidence node with id = “004”) as a link destination (step). S606). Further, since there is no more link destination in the goal node with id = “003” (steps S607 and S608), the translation unit 16 has node information 303 corresponding to the goal node with id = “003”. Is used to generate a term “SubGoal-A” corresponding to the node (step S609). Since the link destination argument is one and there is no term other than the link destination argument (step S610), the translation unit 16 uses the link destination argument term and the goal node term as the operator " A term of a case connected by “∋” is generated (step S611). The case term is
SubGoal-A∋Evidence-A
It becomes. Thereafter, the translation unit 16 generates an operator “·” corresponding to the pattern (strategy node, goal node) of the link information 312 with the goal node of id = “003” as the link destination, and temporarily generates this Are stored in a recording medium (not shown) (step S707). Also, the translation unit 16 specifies the information 314 of the second link whose link source is the strategy node with id = “002” (steps S708, S709, and S703). Further, the translation unit 16 determines that the link destination is a case because the link destination of the identified link is a goal node with id = “005” (step S704). Then, the linked case is processed (step S705). Similar to the above-described processing, by the processing in this case, the translation unit 16 uses the operator “∋” corresponding to the term corresponding to the evidence node with id = “006” and the link pattern having the evidence node as the link destination. ”, A term corresponding to the goal node of id =“ 005 ”which is the link source of the link, and an operator“ · ”corresponding to the link pattern having the goal node as the link destination, The data is temporarily stored in a recording medium (not shown) (step S707). Thereafter, the translation unit 16 generates a term corresponding to the strategy node with id = “002” (step S710). Since there are only two case terms at the link destination, the translation unit 16 generates an argument term that connects the two case terms at the link destination and the strategy node term with the operator “·”, respectively. (Step S711). The argument term is
topStorage
・ (SubGoal-A∋Evidence-A)
・ (SubGoal-B∋Evidence-B)
It becomes. Since the argument processing with the strategy node with id = “002” as the root node is completed, the translation unit 16 generates the operator “∋” corresponding to the link information 315 to which the strategy node is the link destination. (Step S606) Further, a term “TopGoal” corresponding to the goal node of id = “001”, which is the root node of the entire case, is generated (Steps S607 to S609). Since the link destination argument is one and there is no term other than the link destination argument (step S610), the translation unit 16 uses the link destination argument term and the goal node term as the operator " A term of a case connected by “∋” is generated (step S611). The case term is
TopGoal∋
topStorage
・ (SubGoal-A∋Evidence-A)
・ (SubGoal-B∋Evidence-B)
It becomes. Note that the graph information 300 includes node information 307 corresponding to the context node and link information 316 corresponding to the node, but since the context type is “Context 2”, the translation unit No. 16 does not perform processing for generating the normal operator CONTENT “/”. Since the node information 307 of type = “Context 2” and the property information 321 exist, the translation unit 16 determines that there is information to be added to the inspection target information (step S503), and type = ” The description “my-D-Case” of the node information 307 of Context2 ”is the left side, and the left side and the above-described description of the above-mentioned D-Case are connected with an equal sign. Also, the model information is read from the property information 321 and added to the inspection object information (step S504). As a result, the final inspection target information is as follows. In this way, the translation from the graph information to the inspection object information is performed.

postulate
TopGoal SubGoal−A SubGoal−B:Set
topStrategy:SubGoal−A→SubGoal−B→TopGoal
Evidence−A:SubGoal−A
Evidence−B:SubGoal−B
my−D−Case=
TopGoal∋
topStragegy
・(SubGoal−A∋Evidence−A)
・(SubGoal−B∋Evidence−B)
poster
TopGoal SubGoal-A SubGoal-B: Set
topStrategy: SubGoal-A->SubGoal-B-> TopGoal
Evidence-A: SubGoal-A
Evidence-B: SubGoal-B
my-D-Case =
TopGoal∋
topStorage
・ (SubGoal-A∋Evidence-A)
・ (SubGoal-B∋Evidence-B)

この検査対象情報は、表示部17によって表示され(ステップS115)、ユーザは、その検査対象情報について適宜、追記や変更を行うことができる。また、検査を行うことによって、不適切な箇所を検出することもできる(ステップS101〜S103)。   This inspection target information is displayed by the display unit 17 (step S115), and the user can add or change the inspection target information as appropriate. In addition, by performing an inspection, an inappropriate location can be detected (steps S101 to S103).

ここで、翻訳部16は、検査対象情報をグラフ情報に翻訳することができ、また、グラフ情報を検査対象情報に翻訳することができる。したがって、翻訳部16は、検査対象情報をグラフ情報に翻訳し、その後に、そのグラフ情報を検査対象情報に翻訳することもできる。その際に、翻訳前の検査対象情報と、グラフ情報から翻訳された検査対象情報とは、同じであってもよく、あるいは、異なってもよい。例えば、後述するように、検査対象情報をグラフ情報に翻訳する際に、実行部14による実行が行われた場合には、通常、両検査対象情報は異なるものとなる。   Here, the translation part 16 can translate inspection object information into graph information, and can also translate graph information into inspection object information. Therefore, the translation part 16 can also translate inspection object information into graph information, and can also translate the graph information into inspection object information after that. In that case, the inspection object information before translation and the inspection object information translated from the graph information may be the same or different. For example, as will be described later, when the execution unit 14 executes the translation of the inspection target information into the graph information, the two pieces of inspection target information are usually different.

[検査対象情報の実行]
上述の具体例では、検査対象情報をグラフ情報に翻訳する際に、実行部14による実行が不要である場合について説明したが、前述のように、実行部14による実行を行った上で翻訳を行ってもよい。その場合には、例えば、検査対象記憶部11において、図13で示される検査対象情報が記憶されていたとする。この場合には、D−Caseに応じた記述は、
induction−on−N G step base 3
であるが、これは、その記載の上側で定義されている生成関数(プログラム)「induction−on−N」と、四の引数「G」、「step」、「base」、「3」とによって記述されたものである。したがって、この図13の検査対象情報をグラフ情報に翻訳する際には、翻訳部16によってケースに応じた上記記述が特定され(ステップS201)、実行部14によって実行が必要であると判断されて(ステップS202)、その生成関数(プログラム)が実行されることになる(ステップS203)。
[Execution of inspection target information]
In the specific example described above, the case where execution by the execution unit 14 is unnecessary when the inspection target information is translated into the graph information has been described. However, as described above, the execution is performed after the execution by the execution unit 14 is performed. You may go. In this case, for example, it is assumed that the inspection object information shown in FIG. 13 is stored in the inspection object storage unit 11. In this case, the description according to D-Case is
instruction-on-NG step base 3
However, this is due to the generation function (program) “instruction-on-N” defined in the upper part of the description and the four arguments “G”, “step”, “base”, “3”. It is described. Therefore, when the inspection object information in FIG. 13 is translated into graph information, the translation unit 16 specifies the above description according to the case (step S201), and the execution unit 14 determines that the execution is necessary. (Step S202), the generation function (program) is executed (Step S203).

具体的には、引数の具体的な値が「G」、「step」、「base」、「3」であるため、生成関数(プログラム)「induction−on−N」を繰り返して適用することにより、次のようになる。
induction−on−N G step base 3
=G 3∋step 2
・induction−on−N G step base 2
=G 3∋step 2
・(G 2∋step 1
・induction−on−N G step base 1)
=G 3∋step 2
・(G 2∋step 1
・(G 1∋step 0
・induction−on−N G step base 0))
=G 3∋step 2
・(G 2∋step 1
・(G 1∋step 0
・(G 0∋base)))
Specifically, since the specific values of the arguments are “G”, “step”, “base”, “3”, the generation function (program) “instruction-on-N” is repeatedly applied. It becomes as follows.
instruction-on-NG step base 3
= G 3∋step 2
・ Induction-on-NG step base 2
= G 3∋step 2
・ (G 2∋step 1
・ Induction-on-NG step base 1)
= G 3∋step 2
・ (G 2∋step 1
・ (G 1∋step 0
・ Induction-on-NG step base 0))
= G 3∋step 2
・ (G 2∋step 1
・ (G 1∋step 0
・ (G 0∋base)))

したがって、最終的に、図10の検査対象情報200と同様に、項と演算子とを陽に記述する形式の検査対象情報(議論構造情報)を得ることができ、翻訳部16は、その検査対象情報を、図14のように表示されるグラフ情報に翻訳することができる。なお、ここでは、翻訳の前にすべての項と演算子とを陽に記述する形式の議論構造情報を生成してから翻訳を行う場合について説明したが、前述のように、翻訳の処理を行いながら、逐次的に実行を行ってもよいことは言うまでもない。例えば、「induction−on−N G step base 2」を翻訳する際に、それを実行して「G2∋step1・induction−on−N G step base 1」を得るようにし、さらに、「induction−on−N G step base 1」を翻訳する際に、それを実行して「G1∋step0・induction−on−N G step base 0」を得るようにしてもよい。以上のように、実行部14によって、項と演算子とを陽に記述する形式の議論構造情報を生成してから、あるいは、生成しながら翻訳を行うことによって、引数の具体値を変更するだけで、最新のケースや、図的に表示したいケースに応じたグラフ情報を生成することができるメリットがある。例えば、上述の例の場合、検査対象情報における「G step base 3」を適宜、「G step base 2」や「G step base 5」などに変更し、その後に翻訳の処理を開始することによって、ユーザは、その変更後のケースに応じた有向非巡回グラフを見ることができるようになる。   Therefore, finally, similar to the inspection object information 200 of FIG. 10, inspection object information (discussion structure information) in a form in which terms and operators are explicitly described can be obtained, and the translation unit 16 can obtain the inspection object information. The target information can be translated into graph information displayed as shown in FIG. In this example, the discussion structure information in a form that explicitly describes all terms and operators before translation is generated and then translated. However, as described above, the translation process is performed. However, it goes without saying that the execution may be performed sequentially. For example, when “induction-on-NG step base 2” is translated, it is executed to obtain “G2 step 1 • induction-on-NG step base 1”, and “induction-on-on” When translating “−NG step base 1”, it may be executed to obtain “G 1 ∋step 0 • induction-on-NG step base 0”. As described above, the argument value is simply changed by generating the argument structure information in a form in which the terms and operators are explicitly described by the execution unit 14 or by performing translation while generating the argument structure information. Thus, there is a merit that it is possible to generate graph information corresponding to the latest case or a case to be displayed graphically. For example, in the case of the above-described example, “G step base 3” in the inspection target information is appropriately changed to “G step base 2”, “G step base 5”, etc., and then the translation process is started. The user can view the directed acyclic graph according to the changed case.

なお、上述のように、項と演算子とを陽に記述する形式の議論構造情報を生成する生成関数と引数の具体値とを用いて項と演算子とを陽に記述する形式の議論構造情報を生成する場合であっても、証明検査は、生成関数と引数の具体値とを用いた記述に対して実行すればよい。その証明検査においてエラーがなければ、生成関数を実行した結果に応じた適切なグラフ情報を得られることは保証されることになる。   In addition, as described above, a discussion structure in a format that explicitly describes a term and an operator using a generation function that generates a discussion structure information in a format that explicitly describes the term and an operator and a specific value of an argument. Even in the case of generating information, the proof check may be performed on the description using the generation function and the specific value of the argument. If there is no error in the proof check, it is guaranteed that appropriate graph information corresponding to the result of executing the generation function can be obtained.

ここで、生成関数と引数の具体値とを有する検査対象情報(議論構造情報)を一般的に記述すれば、次のようになる。なお、前述の例との対応で言えば、「induction−on−N」が「generator」に対応し、「G」、「step」、「base」、「3」が「v」,…,「v」に対応する。また、「generator」の型は、
(x:ParameterType)→
(x:ParameterType)→

(x:ParameterType)→
G x … x
すなわち、パラメータの値がv,…,vのときに「generator v … v」を計算すると、v,…,vに応じたゴール「G v … v」のケースに応じた議論構造情報(項や演算子を陽に記述したものである)が生成されることになる。
myLatestDCase:G v … v
myLatestDCase=generator v … v
{−# DCASE myLatestDCase root #−}
Here, the inspection object information (discussion structure information) having the generation function and the specific value of the argument is generally described as follows. In terms of correspondence with the above example, “induction-on-N” corresponds to “generator”, and “G”, “step”, “base”, “3” are “v 1 ”,. Corresponds to “v n ”. The type of “generator” is
(X 1 : ParameterType 1 ) →
(X 2: ParameterType 2) →
...
(X n : ParameterType n ) →
G x 1 x 2 ... x n
That is, the value of parameter v 1, ..., Calculating the "generator v 1 ... v n" when the v n, v 1, ..., v in case the goal "G v 1 ... v n" corresponding to the n Corresponding discussion structure information (which explicitly describes terms and operators) is generated.
myLatestDCase: G v 1 ... v n
myLatestDCase = generator v 1 ... v n
{-# DCASE myLatestDCase root #-}

[実行の拡張1]
次に、実行部14は、項や演算子を陽に記述した議論構造情報の計算を実行することに加えて、同時に通常の計算を実行することができてもよいこと、及び、そのメリットを説明する。Agdaでは、型Dと、D型の引数をとる述語G(つまり「G:D→Set」である)から、「D型の値dと、G dの証明(D−Caseに対応する議論構造)pのペア」の集合を値とする型Σ D Gを構成することができる。ここで、関数「output−and−DCase:(x:ParameterType)→Σ D G」が定義されたとする(簡単のため、引数は一とする)。この関数はxの値からD型の値を計算すると同時に、その計算された値がGを満たすことの証明を返す関数となる。そこで、議論構造情報を次のようにすることによって、パラメータの値vに応じた何らかの結果「myLatestOutput」が計算され、それと同時に、その結果が述語Gを満たすことを示す「myLatestDCase」である議論構造情報(項や演算子を陽に記述したものである)が生成されることになる。また、翻訳部16によって、その議論構造情報をグラフ情報に翻訳することもでき、その場合には、その議論構造情報を図的に表示することも可能となる。
myLatest:Σ D G
myLatest=output−and−Dcase v

myLatestOutput:D
myLatestOutput=first−component myLatest

myLatestDCase:G myLatestOutput
myLatestDCase=second−component myLatest
{−# DCASE myLatestDCase root #−}
[Extended execution 1]
Next, in addition to executing the calculation of the discussion structure information in which terms and operators are explicitly described, the execution unit 14 may be capable of executing a normal calculation at the same time, and its merit. explain. In Agda, from type D and predicate G that takes D type arguments (that is, “G: D → Set”), “D type value d and proof of G d (argument structure corresponding to D-Case) The type Σ D G whose value is a set of “) pairs of p)” can be constructed. Here, it is assumed that the function “output-and-DCase: (x: ParameterType) → ΣDG” is defined (for simplicity, the argument is one). This function calculates a D-type value from the value of x and at the same time returns a proof that the calculated value satisfies G. Therefore, by setting the discussion structure information as follows, a certain result “myLatestOutput” corresponding to the parameter value v is calculated, and at the same time, the discussion structure is “myLatestDCase” indicating that the result satisfies the predicate G. Information (which is an explicit description of terms and operators) will be generated. Further, the discussion structure information can be translated into graph information by the translation unit 16, and in this case, the discussion structure information can be displayed graphically.
myLatest: ΣD G
myLatest = output-and-Dcase v

myLatestOutput: D
myLatestOutput = first-component myLatest

myLatestDCase: G myLatestOutput
myLatestDCase = second-component myLatest
{-# DCASE myLatestDCase root #-}

この場合には、議論構造情報を実行部14が実行することにより、何らかの計算結果の値(myLatestOutput)と、その値が正しいことを示す議論構造(myLatestDCase)とが生成されることになる。したがって、前述のように、項や演算子を陽に記述した議論構造情報を生成する場合と比較して、値が計算されていること、また、その生成された、項や演算子を陽に記述した議論構造情報が、その計算された値に関する証明となっていることが追加されていることになる。また、この場合には、値を計算するプログラムと証明(議論構造情報の陽な記述を生成するプログラム)とが一体になっているため、「このD−Caseは本当にこの値を計算するのに使ったプログラムに基づいているのか?」という心配をする必要がなくなるというメリットがある。   In this case, the execution unit 14 executes the discussion structure information, thereby generating a certain calculation result value (myLatestOutput) and a discussion structure (myLestestDCase) indicating that the value is correct. Therefore, as described above, compared to the case of generating discussion structure information in which terms and operators are explicitly described, the value is calculated, and the generated terms and operators are explicitly It is added that the argument structure information described is a proof of the calculated value. In this case, since the program for calculating the value and the proof (the program for generating an explicit description of the discussion structure information) are integrated, “This D-Case really calculates this value. The advantage is that you don't have to worry about whether it is based on the program you used.

[実行の拡張2]
上記をさらに拡張して、計算された値が、パラメータの具体的値との関係において正しいことを示すD−Caseを生成することもできる。この場合には、計算結果の型Dと述語Gとがパラメータの値に依存し、
D:ParameterType→Set
(パラメータの値に応じて結果の型も変わりうることを示す)
G:(x:ParameterType)→D x→Set
(パラメータの値と、結果型の値の二つを引数にとる述語、すなわち計算の入力値と出力値の間の関係、すなわち(それが成り立っていることをD−Caseで示すべきところの)計算の仕様を示す)
となる。
[Execution extension 2]
The above can be further expanded to generate a D-Case indicating that the calculated value is correct in relation to the specific value of the parameter. In this case, the calculation result type D and predicate G depend on the parameter values,
D: ParameterType → Set
(Indicates that the result type can change depending on the parameter value)
G: (x: ParameterType) → D x → Set
(A predicate that takes two parameters, the value of the result and the value of the result type, that is, the relationship between the input value and the output value of the calculation, ie (where D-Case indicates that it is true) Indicates the calculation specifications)
It becomes.

そして、
output−and−DCase:(x:ParameterType)→Σ(D x)(G x)
という型付けのものが定義されたとして、次のように議論構造情報を記述することによって、結果の型Dと述語Gとがパラメータxに依存する場合に拡張することができる。
myLatest:Σ (D v) (G v)
myLatest=output−and−Dcase v

myLatestOutput:D v
myLatestOutput=first−component myLatest

myLatestDCase:G v myLatestOutput
myLatestDCase=second−component myLatest
{−# DCASE myLatestDCase root #−}
And
output-and-DCase: (x: Parameter Type) → Σ (D x) (G x)
If the result type D and the predicate G depend on the parameter x, it can be extended by describing the argument structure information as follows.
myLatest: Σ (D v) (G v)
myLatest = output-and-Dcase v

myLatestOutput: D v
myLatestOutput = first-component myLatest

myLatestDCase: G v myLatestOutput
myLatestDCase = second-component myLatest
{-# DCASE myLatestDCase root #-}

この場合には、議論構造情報を実行部14が実行することにより、パラメータの具体的値vに応じた型を有する何らかの値(myLatestOutput)と、その値が正しいことを示す、その値とvとに応じたトップゴール(G v myLatestOutput)を持つ議論構造(myLatestDCase)とが生成されることになる。したがって、myLatestOutputが、最新のパラメータvとの関係において正しいことを示す最新の議論構造が得られることになる。   In this case, the execution unit 14 executes the discussion structure information, so that a certain value (myLatestOutput) having a type corresponding to the specific value v of the parameter, the value indicating that the value is correct, v, Thus, a discussion structure (myLestestDase) having a top goal (GvmyLatestOutput) corresponding to is generated. Therefore, the latest argument structure indicating that myLatestOutput is correct in relation to the latest parameter v is obtained.

ここで、「検査対象情報の実行」、「実行の拡張1」、及び、「実行の拡張2」で説明した実行の対象となる議論構造情報を情報Aと呼ぶ。上記では、いかなる過程でパラメータの具体的値vを含む情報Aが検査対象記憶部11に記憶された状態に至ってもよい。情報Aの実行の契機となる、情報Aを含む検査対象情報をグラフ情報に翻訳するタイミングは、上述した通り、翻訳部16のステップS110での判断による。   Here, the discussion structure information to be executed described in “Execution object information execution”, “Execution extension 1”, and “Execution extension 2” is referred to as information A. In the above, the information A including the specific value v of the parameter may be stored in the inspection target storage unit 11 in any process. The timing for translating the inspection object information including the information A into the graph information that triggers the execution of the information A depends on the determination in step S110 of the translation unit 16 as described above.

[実行の拡張3]
パラメータの具体的値vを含む情報Aの生成と、それのグラフ情報への翻訳(情報Aの実行を含む)は、整合性検査装置1内において、機械的に制御されていてもよい。この制御の記述(プログラム)を情報Bと呼ぶ。情報Bは、情報Aのうちパラメータの具体的値以外の部分をそのまま含んでいてもよい。情報Bは、検査対象記憶部11に記憶され、実行部14によって実行されると、外部からの入力を取得し(例えばその時点でのセンサー読み取り値)、入力に基づいてパラメータの具体的値vを含む情報Aを検査対象記憶部11上に生成し、その情報Aに関する計算を前段までのように実行して、その計算結果である、項や演算子が陽に記述された議論構造情報をグラフ情報に翻訳する処理を行うプログラムである。また、情報Bの実行は、生成された情報Aのその他の計算結果を外部に出力してもよい(例えば、前記myLatestOutputでアクチュエータを制御するなど)し、入力取得から翻訳・出力までの処理を繰り返してもよい。このように、情報Bが実行されることによって翻訳が行われる場合には、検査対象記憶部11において、検査対象情報をグラフ情報に変換する処理に応じた変換プログラムも記憶されており、翻訳部16は、その変換プログラムを実行することによって、検査対象情報をグラフ情報に変換すると考えてもよい。さらに、検査対象記憶部11において、実行部14による実行を行うためのプログラムも記憶されており、実行部14は、そのプログラムを実行することによって、検査対象情報を実行すると考えてもよい。あるいは、翻訳部16が実行部14の機能を用いることができることに加えて、実行部14が翻訳部16の機能を呼び出したり、実行部14が自分自身の機能を呼び出したりすることが、再帰的に可能な構成になっていると考えてもよい。なお、この実行の拡張3の場合において、情報Bにおける情報A以外の部分は、情報Aと同じ構成的型理論に基づく同じ人工言語で記述されていてもよく、あるいは、そうでなくてもよい。すなわち、検査対象情報と変換プログラムとは、構成的型理論に基づく同じ人工言語で記述されていてもよく、あるいは、そうでなくてもよい。また、検査対象情報と、実行部14が実行を行うためのプログラムとは、構成的型理論に基づく同じ人工言語で記述されていてもよく、あるいは、そうでなくてもよい。
[Execution extension 3]
The generation of the information A including the specific value v of the parameter and the translation into the graph information (including the execution of the information A) may be mechanically controlled in the consistency checking apparatus 1. This control description (program) is called information B. The information B may include a part of the information A other than the specific value of the parameter as it is. The information B is stored in the inspection object storage unit 11, and when executed by the execution unit 14, an external input is acquired (for example, a sensor reading value at that time), and a specific value v of the parameter based on the input Is generated on the inspection object storage unit 11, and the calculation related to the information A is executed as in the previous stage, and the discussion structure information in which terms and operators are explicitly described is the calculation result. It is a program that performs a process of translating into graph information. In addition, the execution of the information B may output other calculation results of the generated information A to the outside (for example, controlling the actuator with the myLatestOutput), and perform processing from input acquisition to translation / output It may be repeated. As described above, when the translation is performed by executing the information B, the inspection target storage unit 11 also stores a conversion program corresponding to the process of converting the inspection target information into the graph information. 16 may be considered to convert the inspection object information into graph information by executing the conversion program. Further, the inspection object storage unit 11 also stores a program for execution by the execution unit 14, and the execution unit 14 may execute the inspection object information by executing the program. Alternatively, in addition to the translation unit 16 being able to use the function of the execution unit 14, it is recursive that the execution unit 14 calls the function of the translation unit 16 or the execution unit 14 calls its own function. It may be considered that the configuration is possible. In addition, in the case of the extension 3 of this execution, the part other than the information A in the information B may or may not be described in the same artificial language based on the same constructive type theory as the information A. . That is, the inspection object information and the conversion program may or may not be described in the same artificial language based on the structural type theory. Further, the inspection target information and the program for the execution unit 14 to execute may or may not be described in the same artificial language based on the structural type theory.

[実行の拡張4]
また、前述したように、実行部14は、証明検査において、検査対象情報に含まれるプログラム、または、検査対象情報で指定される外部プログラムを実行し、その実行結果が証明検査に用いられてもよい。その場合には、例えば、炉に関するアシュランス・ケースに応じた検査対象情報の証明検査を行う際に、外部プログラムを実行することによって、実際の炉の温度を取得し、その取得した炉の温度を用いて、証明検査を行うこともできる。また例えば、システムに関するアシュランス・ケースに応じた検査対象情報の証明検査を行う際に、そのシステムの設計情報や運用実績データ等を収めたデータベースに対するクエリーを外部プログラムとして実行して、その結果に基づいて証明検査をおこなうこともできる。また例えば、あるゴールGのエビデンスEとして「自動証明プログラムPによる」という記述を許し、証明検査の際に外部プログラムPをGに対して実行し、その結果いかんによって元の議論構造情報G∋Eの検査結果を定めることもできる。また、そのような実行を行う場合には、検査対象情報が実行対象となるプログラムを含んでいてもよく、あるいは、外部プログラムが呼び出されるようにしてもよい。なお、Agdaにおいては、そのような外部プログラムを呼び出す機能(プラグイン機構)を用いた証明検査を行うことができる。そのことについては、次の文献を参照されたい。
[Execution extension 4]
Further, as described above, the execution unit 14 executes a program included in the inspection target information or an external program specified by the inspection target information in the certification inspection, and the execution result is used for the certification inspection. Good. In that case, for example, when performing proof inspection of information to be inspected according to the assurance case related to the furnace, the actual temperature of the furnace is obtained by executing an external program, and the obtained furnace temperature It is also possible to perform proof inspection using. In addition, for example, when performing verification inspection of information to be inspected according to an Assurance case related to a system, a query for a database containing design information and operation result data of the system is executed as an external program. A proof check can also be performed based on this. Also, for example, the description “automatic certification program P” is allowed as evidence E for a goal G, and the external program P is executed for G at the time of certification examination. As a result, the original discussion structure information G∋E It is also possible to determine the inspection result. Further, when such execution is performed, the inspection target information may include a program to be executed, or an external program may be called. In Agda, it is possible to perform certification inspection using a function (plug-in mechanism) for calling such an external program. For that, please refer to the following document.

文献:Yoshifumi Yuasa,Yoshinori Tanabe,Toshifusa Sekizawa,Koichi Takahashi、「Verification of the Deutsch−Schorr−Waite Marking Algorithm with Modal Logic」、Second International Conference,Verified Software:Theories,Tools,Experiments(VSTTE 2008),LNCS 5295,p.115−129,2008年   Literature: Yoshifumi Yuasa, Yoshinori Tanabe, Toshifusa Sekizawa, Koichi Takahashi, "Verification of the Deutsch-Schorr-Waite Marking Algorithm with Modal Logic", Second International Conference, Verified Software: Theories, Tools, Experiments (VSTTE 2008), LNCS 5295, p. 115-129, 2008

次に、コンテキストにパラメータの情報(Parameters)も含まれる場合の具体例について簡単に説明する。検査対象情報が図15で示されるものであったとする。この場合には、DCaseNamePattern PatternVariableDeclは、等号の左辺である「example−with−params X e1 e2」となる。そして、各パラメータは、X、e1、e2である。翻訳部16は、その各パラメータの型付けが、「X:System」、「e1:X is−designed−dependable」、「e2:X is−developed−correctly」であることを、TypeSignatureである部分(等号より上の3行)で示されたexample−with−paramsの型から判断する。これは、Agdaのような構成的型理論の実装において一般的な技術である型推論を行うことによってなされる。したがって、ステップS206の処理において、
Clause
example−with−params X e1 e2
Parameters
(X:System)
(e1:X is−designed−dependable)
(e2:X is−developed−correctly)
を含むコンテキストノードが生成されることになる。なお、前述のように、グラフ情報において、このコンテキストノードに対応するノードの情報のtypeは、「Context2」である。また、図15で示される検査対象情報が翻訳されたグラフ情報の表示は、図16で示されるようになる。その図16において、ルートノードの子ノードであるコンテキストノードにおいて、上述のClauseと、Parametersとが含まれている。
Next, a specific example in the case where parameter information (Parameters) is included in the context will be briefly described. Assume that the inspection object information is as shown in FIG. In this case, DCaseName { Pattern } { PatternVariableDecl } becomes “example-with-params X e1 e2” which is the left side of the equal sign. The parameters are X, e1, and e2. The translation unit 16 indicates that the type of each parameter is “X: System”, “e1: X is-designed-dependent”, and “e2: X is-developed-collective”. Judgment is made from the example-with-params type shown in (3 lines above the number). This is done by performing type inference, a common technique in the implementation of constructive type theory such as Agda. Therefore, in the process of step S206,
Clause
example-with-params X e1 e2
Parameters
(X: System)
(E1: X is-designed-dependent)
(E2: X is-developed-correctly)
A context node containing is generated. As described above, in the graph information, the type of the information of the node corresponding to this context node is “Context2”. Further, the display of the graph information obtained by translating the inspection target information shown in FIG. 15 is as shown in FIG. In FIG. 16, the above-described Clause and Parameters are included in the context node that is a child node of the root node.

また、上述の具体例では、グラフ情報300において、モデル情報201をプロパティーの情報321に含める場合について説明したが、そうでなくてもよい。モデル情報201に対応したコンテキストノードを生成するようにしてもよい。そのコンテキストノードも、議論構造情報におけるルートノードの子ノードとして生成されることが好適である。また、そのコンテキストノードに含まれる記述が、グラフ情報から検査対象情報への翻訳の際にモデル情報に変換されるように、そのモデル情報を含むコンテキストノードが他のコンテキストノードと区別可能になっていることが好適である。具体的には、そのコンテキストノードに対応するノードの情報において、typeを「Context3」とすることによって、その区別が行われるようにしてもよい。   Further, in the specific example described above, the case where the model information 201 is included in the property information 321 in the graph information 300 has been described, but this need not be the case. A context node corresponding to the model information 201 may be generated. The context node is also preferably generated as a child node of the root node in the discussion structure information. In addition, the context node including the model information can be distinguished from other context nodes so that the description included in the context node is converted into model information when the graph information is translated into the inspection target information. It is preferable that Specifically, in the information of the node corresponding to the context node, the distinction may be made by setting the type to “Context3”.

また、検査対象情報において、let構文を用いてもよい。let構文を用いることによって、議論構造情報における局所的な宣言を行うことができる。例えば、前述のD−CaseやArgumentを、次のように拡張してもよい。
D−Case::=…
|let
FormalContext
ContextDescription
in
D−Case
Argument::=…
|let
FormalContext
ContextDescription
in
Argument
Further, let syntax may be used in the inspection object information. By using the let syntax, a local declaration in the discussion structure information can be made. For example, the above-described D-Case and Argent may be expanded as follows.
D-Case :: =
| let
FormalContext
[ ContextDescription ]
in
D-Case
Argent :: = ...
| let
FormalContext
[ ContextDescription ]
in
Argent

なお、…は、前述のD−CaseやArgumentの記述を示すものである。具体的には、例えば、議論構造情報202を、次のようにlet構文を用いて記述することも可能である。
my−D−Case=let
T1=TopGoal
T2=topStrategy
S1=SubGoal−A
S2=SubGoal−B
E1=Evidence−A
E2=Evidence−B
in
T1∋T2・(S1∋E1)・(S2∋E2)
In addition, ... shows the description of the above-mentioned D-Case and Argent. Specifically, for example, the discussion structure information 202 can be described using the let syntax as follows.
my-D-Case = let
T1 = TopGoal
T2 = topStrategy
S1 = SubGoal-A
S2 = SubGoal-B
E1 = Evidence-A
E2 = Evidence-B
in
T1∋T2 ・ (S1∋E1) ・ (S2∋E2)

上記の例では、letとinとの間において、TopGoalやtopStragegy等を、T1やT2で記述することを宣言し、in以下のD−Caseにおいて、項をT1やT2で記述している。なお、let構文を用いて局所モデル情報を記述してもよい。すなわち、letとinとの間に、局所モデル情報を含めるようにしてもよい。なお、検査対象情報をグラフ情報に翻訳する際に、このletとinとの間の記述は、in以下のD−CaseやArgumentにおけるルートノードの子ノードであるコンテキストノードに含めるようにしてもよい。その際にも、そのコンテキストノードに含まれる記述が、グラフ情報から検査対象情報への翻訳の際にlet構文に変換されるように、そのlet構文の記述を含むコンテキストノードが他のコンテキストノードと区別可能になっていることが好適である。具体的には、そのコンテキストノードに対応するノードの情報において、typeを「Context4」とすることによって、その区別が行われるようにしてもよい。   In the above example, TopGoal, topStorage, etc. are declared in T1 and T2 between let and in, and terms are described in T1 and T2 in the D-Case below in. Note that local model information may be described using the let syntax. That is, local model information may be included between let and in. When translating the inspection object information into graph information, the description between the let and in may be included in a context node that is a child node of the root node in D-Case or Argon below in. . At that time, the context node including the description of the let syntax is different from the other context nodes so that the description included in the context node is converted into the let syntax when the graph information is translated into the inspection target information. It is preferable that they can be distinguished. Specifically, in the information of the node corresponding to the context node, the type may be distinguished by setting “type” to “Context4”.

また、検査対象情報がモジュール構造を有する例について簡単に説明する。図17A,図17Bで示される検査対象情報(厳密には、検査対象情報の議論構造情報である)におけるlet構文のletとinとの間に、「open C−DefSys」や「open C−SystemSafe」が含まれている。そのことは、in以下において、モジュール「C−DefSys」や「C−SystemSafe」の中で記述された情報が、「in」に続く項の中で参照されることの宣言を意味している。なお、この例でのモジュールは、モデル情報についてのものであるが、モジュール内で記述される情報はそれに限定されないことは言うまでもない。すなわち、モジュールは、モデル情報について使用されてもよく、議論構造情報について使用されてもよい。このように、検査対象情報においてモジュールが使用される範囲は問わない。検査対象情報の記述にモジュール構造を利用することによって、ソフトウェア記述におけるモジュール構造の利点を、検査対象情報の記述に導入することができるようになる。例えば、関連する情報を一箇所にまとめることにより保守性が向上する点、パラメータ付きモジュールを定義することにより汎用性が向上する点、モジュール間のインターフェースを定めた上で各モジュールを構築することにより作業を確実に分割し、また作業結果を機械的に合成することできる点、などが挙げられる。   An example in which the inspection target information has a module structure will be briefly described. 17A and 17B, “open C-DefSys” or “open C-SystemSafe” is between the let syntax in and the in of the let syntax in the test target information (strictly, the discussion structure information of the test target information). "It is included. This means a declaration that information described in the modules “C-DefSys” and “C-SystemSafe” is referred to in a term following “in” below in. In addition, although the module in this example is about model information, it cannot be overemphasized that the information described in a module is not limited to it. That is, the module may be used for model information and may be used for discussion structure information. Thus, the range in which the module is used in the inspection object information does not matter. By using the module structure for the description of the inspection object information, the advantage of the module structure in the software description can be introduced into the description of the inspection object information. For example, maintainability is improved by collecting related information in one place, versatility is improved by defining a module with parameters, and by constructing each module after defining the interface between modules It is possible to divide the work reliably and to synthesize the work result mechanically.

また、アーギュメントは、上述の説明以外のパターンをも有してもよい。例えば、アーギュメントは、次のように、∀Introや、→Introなどの演算子を用いて構成されてもよい。
Argument::=…
|∀Intro{Domain}(Lambda−D−Case)
|→Intro{Domain}(Lambda−D−Case)
Lambda−D−Case::=λ(Agdaの変数名)→D−Case
Domain::=Set型のAgda項
なお、…は、前述のArgumentの記述を示すものである。また、「e(x)」が変数「x」を含むAgda項であるとき、λ表記「λ x→e(x)」は、具体的値「v」を受け取ると「e(v)」(xにvを代入したときのe(x)の値)を返す関数を表すAgda項である。
The arguments may also have patterns other than those described above. For example, the argument may be configured using an operator such as ∀Intro or → Intro as follows.
Argent :: = ...
| ∀Intro {Domain} (Lambda-D-Case)
| → Intro {Domain} (Lambda-D-Case)
Lambda-D-Case :: = λ (Agda variable name) → D-Case
Domain :: = Set type Agda term In addition, ... indicates the description of the above-mentioned Argent. When “e (x)” is an Agda term including the variable “x”, the λ notation “λ x → e (x)” receives “e (v)” ( This is an Agda term representing a function that returns a value of e (x) when v is substituted for x.

演算子「∀Intro」は、「∀(x:D)→P(x)」すなわち「全てのD型の値xについて、P(x)が成り立つ」(PはD型の値を引数とする述語)の形のゴールを示すアーギュメントの記述を構成するために用いる。構成的型理論において、この形の命題の一の証明を与えるということは、D型の任意の値xを受け取って、P(x)の証明を返すような一の関数を与えることである。演算子∀Introは、第一引数として一の型D、第二引数として一のそのような関数のλ表記「λ x→(P(x)∋Argument(x))」とをとり、ゴール「∀(x:D)→P(x)」を示すアーギュメントのAgda表記「∀Intro{D}(λ x→(P(x)∋Argument(x))」を構成する。これのAgda項としての意味は、第二引数である関数自体と同じである。アーギュメントとしては、「xを任意のD型の値を表す変数として導入し、ゴールP(x)をアーギュメントArgument(x)で示す」というアーギュメントである。   The operator “∀Intro” is “∀ (x: D) → P (x)”, that is, “P (x) holds for all D-type values x” (P takes a D-type value as an argument). Used to construct a description of an argument indicating a goal in the form of a predicate). In constructive type theory, giving a proof of this form of proposition means giving a function that takes an arbitrary value x of type D and returns a proof of P (x). The operator ∀Intro takes one type D as the first argument and one such function λ notation “λ x → (P (x) ∋Argent (x))” as the second argument, and the goal “ An Agda notation “∀Intro {D} (λx → (P (x) ∋Argent (x))” indicating an argument indicating ∀ (x: D) → P (x) ”is formed as an Agda term. The meaning is the same as the function itself as the second argument.As an argument, “x is introduced as a variable representing a value of an arbitrary D type, and the goal P (x) is indicated by the argument Argument (x)”. It is an argument.

同様に、演算子「→Intro」は、「G→G」すなわち「GならばG」(GとGはゴール)の形のゴールを示すアーギュメントの記述を構成するために用いる。構成的型理論において、この形の命題の一の証明を与えるということは、Gの任意の証明hを受け取って、Gの証明を返すような一の関数を与えることである。演算子→Introは、第一引数として一のゴールGと、第二引数として一のそのような関数のλ表記「λ h→(G∋Argument(h))」とをとり、ゴール「G→G」を示すアーギュメントのAgda表記「→Intro{G}(λ h→(G∋Argument(h))」を構成する。これのAgda項としての意味は、第二引数である関数自体と同じである。アーギュメントとしては、「仮にGのエビデンスが与えられたとしてこれをhとし、GをアーギュメントArgument(h)で示す」というアーギュメントである。アーギュメントArgument(h)の中では、Gを示すエビデンスとしてhを用いることができることになる。 Similarly, the operator “→ Intro” is used to construct an argument description indicating a goal in the form of “G 1 → G 2 ”, that is, “G 2 if G 1 ” (G 1 and G 2 are goals). Use. In constructive type theory, giving a proof of this form of proposition means giving a function that takes an arbitrary proof h of G 1 and returns a proof of G 2 . The operator → Intro takes one goal G 1 as the first argument and λ notation “λ h → (G 2 ∋Argent (h))” of one such function as the second argument. An Agda notation “→ Intro {G 1 } (λ h → (G 2 ∋Argent (h)))” of an argument indicating “G 1 → G 2 ” is constructed. The argument is the same as the function itself, and the argument is “assuming that the evidence of G 1 is given, this is represented as h, and G 2 is represented by the argument Argent (h).” The argument Argent (h) in medium, so that it is possible to use h as evidence of G 1.

それら∀Introや→Introの両方を用いた簡単な検査対象情報の例は、図18で示すものである。厳密には、図18は、議論構造情報のみを示している。図18の議論構造情報は、簡単に言えば、すべての自然数nについて、Pn→Pnを証明するため、任意の自然数nについて、Pn→Pnを証明するものである。そして、その任意の自然数nについてPn→Pnを証明するため、Pnの証明pを仮定し、その証明pを用いることによってPnの成立を証明するものである。図18で示される議論構造情報を翻訳する際には、図5のフローチャートのステップS401において、翻訳部16は、「∀Intro{D}(λ x→t)」や「→Intro{G}(λ h→t)」を、ストラテジと残りのケースのパターンの一種として特定する。両者において、残りのケースは「t」の部分であり、それ以外の部分の情報はストラテジノードとそのストラテジノードの子となるコンテキストノードの情報に翻訳される。具体的には、ステップS401において「∀Intro{D}(λ x→t)」のパターンが特定された場合には、翻訳部16は、ステップS402において、value属性が「Introduce an assumption」であるストラテジノードの情報と、description属性が「Assumption x:D」であるコンテキストノードの情報と、そのストラテジノードがsourceであり、そのコンテキストノードがtargetであるリンクの情報とを生成する。そして、翻訳部16は、ステップS402で生成されたノードはリーフでなく、残り「t」はケースであると判断し、tに対しケースに応じた記述の処理を行う(ステップS403〜S405)。
また、ステップS401において「→Intro{G}(λ h→t)」のパターンが特定された場合には、翻訳部16は、ステップS402おいて、value属性が「Assume the antecedent」であるストラテジノードの情報と、description属性が「Assumption h:G」であるコンテキストノードの情報と、そのストラテジノードがsourceであり、そのコンテキストノードがtargetであるリンクの情報とを生成する。そして、翻訳部16は、ステップS402で生成されたノードはリーフでなく、残り「t」はケースであると判断し、tに対しケースに応じた記述の処理を行う(ステップS403〜S405)。このようにして、図18の検査対象情報をグラフ情報に翻訳した結果は、図19で示されるようになる。なお、ストラテジノードにおけるvalueは、それら以外のものであってもよい。但し、∀Intro{D}のパターンと、→Intro{G}のパターンとで別のものになることが好適である。グラフ情報から検査対象情報への翻訳を適切に行うことができるようにするためである。また、このようにして生成されるコンテキストノードも、他のコンテキストノードと区別可能になっていることが好適である。具体的には、そのコンテキストノードに対応するノードの情報において、typeを「Context5」とすることによって、その区別が行われるようにしてもよい。なお、∀Introや→Introに応じて生成されたストラテジノードをルートノードとするアーギュメントのグラフ情報を検査対象情報に翻訳する際のアーギュメントの処理(図8)は次のようになる。∀Introや→Introの処理に応じて生成されたコンテキストノード(例えば、type属性が「Context5」であるノード)のことを、通常のコンテキストノードと区別して「Assumptionを示すコンテキストノード」と呼ぶことにする。ステップS703において、リンクのパターンが(ストラテジノード、ゴールノード)または(ストラテジノード、通常のコンテキストノード)である場合は、先に説明した通りに処理を進める。リンクのパターンが(ストラテジノード、Assumptionを示すコンテキストノード)である場合、コンテキストノードのdescription属性は「Assumption x:D」の形であり、ステップS706では、これからAgdaの変数名「x」とSet型のAgda項「D」を生成し、ステップS707では演算子を生成しない。ステップS710では、アーギュメントのルートノードのvalue属性が「Introduce an assumption」である場合は、ストラテジの項として「∀Intro{D}」を生成し、「Assume the antecedent」である場合は、「→Intro{D}」を生成する。ここで、「D」は、Assumptionを示すコンテキストノードへのリンクのパターンに対してステップS706で生成した項である。ステップS711では、アーギュメントの項として、
CONTEXT[(コンテキストノード項1)/
CONTEXT[(コンテキストノード項2)/

CONTEXT[(コンテキストノード項m)/
(ステップS710で生成されたストラテジの項)(λ x→(ケース項))
]…]]
を生成する。ここで、(コンテキストノード項i)は、通常のコンテキストノードへのリンクのパターンに対してステップS706で生成した項、(ケース項)は、ゴールノードへのリンクのパターンに対してステップS705で生成した項、「x」は、Assumptionを示すコンテキストノードへのリンクのパターンに対してステップS706で生成した変数名である。なお、そのD−Caseは、ステップS705のケースの処理によって生成したものである。このように、上記具体例で説明した以外の他の演算子や項についても、翻訳を行うことができる。また、本実施の形態で説明した以外の項や演算子についても、同様にして、適宜、検査対象情報で使用され、また、検査対象情報からグラフ情報への翻訳、または、グラフ情報から検査対象情報への翻訳が行われてもよいことは言うまでもない。なお、ここで説明したように、項とノードとが対応し、演算子とリンクとが対応するとは限らない。すなわち、翻訳時にはそれら以外の対応関係をも用いて、検査対象情報とグラフ情報との間の翻訳が行われてもよい。
An example of simple inspection object information using both of them, Intro and → Intro, is shown in FIG. Strictly speaking, FIG. 18 shows only the discussion structure information. In short, the discussion structure information in FIG. 18 proves Pn → Pn for any natural number n in order to prove Pn → Pn for all natural numbers n. Then, in order to prove Pn → Pn for the arbitrary natural number n, a proof p of Pn is assumed, and the formation of Pn is proved by using the proof p. When translating the discussion structure information shown in FIG. 18, in step S401 of the flowchart of FIG. 5, the translation unit 16 performs “∀Intro {D} (λ x → t)” or “→ Intro {G 1 }. (Λh → t) ”is specified as a kind of strategy and remaining case patterns. In both cases, the remaining case is the “t” part, and the information of the other part is translated into information of the strategy node and context nodes that are children of the strategy node. Specifically, when the pattern “∀Intro {D} (λ x → t)” is specified in step S401, the translation unit 16 has the value attribute “Introduction an assumption” in step S402. Information of a strategy node, information of a context node whose description attribute is “Assumption x: D”, and information of a link whose strategy node is “source” and whose context node is “target” are generated. Then, the translation unit 16 determines that the node generated in step S402 is not a leaf and the remaining “t” is a case, and performs a description process for t according to the case (steps S403 to S405).
If the pattern “→ Intro {G 1 } (λ h → t)” is specified in step S401, the translation unit 16 uses the strategy whose value attribute is “Assume the antecedent” in step S402. The node information, the information of the context node whose description attribute is “Assumption h: G 1 ”, and the information of the link whose strategy node is “source” and whose context node is “target” are generated. Then, the translation unit 16 determines that the node generated in step S402 is not a leaf and the remaining “t” is a case, and performs a description process for t according to the case (steps S403 to S405). Thus, the result of translating the inspection object information of FIG. 18 into the graph information is as shown in FIG. The value in the strategy node may be other than those. However, it is preferable that the pattern of ∀Intro {D} is different from the pattern of → Intro {G 1 }. This is to enable appropriate translation from the graph information to the inspection object information. In addition, it is preferable that the context node generated in this way is distinguishable from other context nodes. Specifically, in the information of the node corresponding to the context node, the distinction may be made by setting the type to “Context 5”. Note that the argument processing (FIG. 8) when the graph information of the argument having the strategy node generated according to ∀Intro or → Intro as the root node is translated into the inspection target information is as follows.コ ン テ キ ス ト A context node (for example, a node whose type attribute is “Context5”) generated in response to the processing of Intro or → Intro is referred to as a “context node indicating an Assumption” in distinction from a normal context node. To do. In step S703, if the link pattern is (strategy node, goal node) or (strategy node, normal context node), the process proceeds as described above. When the link pattern is (strategy node, context node indicating Assumption), the description attribute of the context node has the form of “Assumption x: D”. In step S706, the variable name “x” of Agda and the Set type will be used. Agda term “D” is generated, and no operator is generated in step S707. In step S710, if the value attribute of the root node of the argument is “Introduction an assumption”, “∀Intro {D}” is generated as a strategy term, and if “Assume the antecedent”, “→ Intro {D} "is generated. Here, “D” is the term generated in step S706 for the pattern of the link to the context node indicating the Assumption. In step S711, as an argument term,
CONTEXT [(context node term 1) /
CONTEXT [(context node term 2) /
...
CONTEXT [(context node term m) /
(Term of strategy generated in step S710) (λ x → (case term))
] ...]]
Is generated. Here, (context node term i) is a term generated in step S706 for a link pattern to a normal context node, and (case term) is generated in step S705 for a link pattern to a goal node. The term “x” is the variable name generated in step S706 for the pattern of the link to the context node indicating the Assumption. The D-Case is generated by the process in the case of step S705. In this way, translation can be performed for other operators and terms other than those described in the specific example. Similarly, terms and operators other than those described in the present embodiment are used as appropriate in the inspection object information in the same manner, and the translation from the inspection object information to the graph information, or from the graph information to the inspection object. Needless to say, translation into information may be performed. As described here, terms and nodes correspond, and operators and links do not always correspond. That is, at the time of translation, the correspondence between the inspection object information and the graph information may be performed using the correspondence relationship other than those.

また、上述した具体例では、Evidence−Aを、Evidence−Bに書き間違えていた場合に、証明検査によってエラーの検出されることについて説明した。そのエラーは、推論規則の適用のしかたの誤りに関するエラーであると言うことができる。ここでは、他の例として、証明検査において、場合分けが適切でないエラーが検出されることについて説明する。まず、モデル情報の一部として、図20で示されるMachineryHazardが検査対象記憶部11で記憶されているとする。図20において、「data HazardType:Set where」以下において、MechanicalからCombinationまでの10個のハザード種別が規定されている。また、その下に、「全てのハザード種別tについてP(t)」(Pはハザード種別を引数にとる述語)という形のゴールを示すための一般的ストラテジ「ArgueoverHazardType」が定義されている。このストラテジは、「tがMechanicalハザードである場合」、「tがElectricalハザードである場合」、…等の10の場合のサブゴールをそれぞれ示すことによってゴールを示すものである。図21A,図21Bは、検査対象記憶部11で記憶されている検査対象情報の一部を示す情報である。図21Aの5行目において、「open import MachineryHazard」と記述されており、この検査対象情報において、図20のMachineryHazardが読み込まれている。また、前述の一般的ストラテジ「ArgueoverHazardType」のパラメータP(t)に当たる具体的述語として「t hazardsareexamined」が定義され、そのtを具体的なハザード種別「Mechanical」、「Electrical」、…、「Combination」とした場合の10のサブゴールに対する10のサブケースの記述「level2−Mechanical」、「level2−Electrical」、…、「level2−Combination」が与えられている。また、図21Bにおいて、ストラテジ「ArgueoverHazardType」による10の場合への場合分けの議論構造情報が具体的に記述されている。その議論構造に対応するグラフ情報は、図22で示されるものであり、ストラテジノード「ArguoverHazardType」の子ノードとして、10個のハザード種別に対応した10個のゴールノードが存在している。この図21A,図21Bで示される検査対象情報について、検査部12が証明検査を行い、エラーが存在しないことがある時点で確認されたとする。その後、状況の変化に応じて、図20のMachineryHazardの定義において、図23の矢印の位置で示されるように、HazardTypeにTerrorismをさらに追加し、ストラテジ「ArgueoverHazardType」の定義も、11の場合への場合分けに拡張したが、図21A,図21Bの議論構造情報を更新し忘れて、検査対象情報に不整合を導入してしまったとする。その後に、もう一度、検査部12が証明検査を行うと、この場合には、モデル情報におけるHazardTypeにはTerrorismが含まれるが、議論構造情報にはTerrorismが含まれていないため、エラーが検出されることになる。その結果、例えば、ユーザが、議論構造情報において、Terrorismに対応する記述を追加することによって、検査対象情報(議論構造情報)を修正し、エラーとならないようにすることができる。このように、証明検査によって、整合性の検査対象であるケースにおける場合分けがあらかじめ規定されている通りに行われているかどうかをチェックすることも可能である。 Further, in the specific example described above, it has been described that an error is detected by a certification check when Evidence-A is mistakenly written to Evidence-B. It can be said that the error is related to an error in how to apply the inference rule. Here, as another example, it will be described that an error whose classification is not appropriate is detected in the certification examination. First, it is assumed that the MachineHazard shown in FIG. 20 is stored in the inspection object storage unit 11 as part of the model information. In FIG. 20, 10 hazard types from Mechanical to Combination are defined below “data HazardType: Set where”. Below that, a general strategy “Argue - over - HazardType” is defined to indicate a goal of the form “P (t) for all hazard types t” (P is a predicate that takes hazard types as arguments). ing. This strategy indicates a goal by indicating subgoals for 10 cases such as “when t is a mechanical hazard”, “when t is an electrical hazard”,. 21A and 21B are information indicating a part of the inspection target information stored in the inspection target storage unit 11. In the fifth line of FIG. 21A, “open import MachineHazard” is described, and the MachineHazard of FIG. 20 is read in this inspection target information. In addition, “t hazards - are - examined” is defined as a specific predicate corresponding to the parameter P (t) of the general strategy “Argue - over - HazardType” described above, and the t is defined as a specific hazard type “Mechanical”, “ Descriptions of 10 sub-cases for 10 sub-goals when “Electrical”,..., “Combination” are given, “level2-Mechanical”, “level2-Electric”,..., “Level2-Combination”. Further, in FIG. 21B, the discussion structure information for the case division into 10 cases according to the strategy “Argue - over - HazardType” is specifically described. The graph information corresponding to the discussion structure is shown in FIG. 22, and there are 10 goal nodes corresponding to 10 hazard types as child nodes of the strategy node “Argu - over - HazardType”. Yes. Assume that the inspection unit 12 performs a verification inspection on the inspection target information shown in FIGS. 21A and 21B and is confirmed at a time when there is no error. Thereafter, according to the change of the situation, in the definition of MachineHazard in FIG. 20, as shown by the position of the arrow in FIG. 23, Terrorism is further added to the HazardType, and the definition of the strategy “Argue - over - HazardType” is also 11 However, suppose that the discussion structure information in FIGS. 21A and 21B is forgotten to be updated and inconsistency is introduced into the inspection target information. After that, when the inspection unit 12 performs proof inspection again, in this case, HazardType in the model information includes Error, but since the discussion structure information does not include Error, an error is detected. It will be. As a result, for example, by adding a description corresponding to Terrorism in the discussion structure information, the user can correct the inspection target information (discussion structure information) so that no error occurs. As described above, it is possible to check whether the case classification in the case of the consistency inspection target is performed as prescribed in advance by the certification inspection.

次に、上述の説明以外のエラーの例として、証明検査において、数値の単位が異なっているエラーが検出されることについて説明する。まず、モデル情報の一部として、図24で示される検査対象情報が検査対象記憶部11で記憶されているとする。この検査対象では、メートル法の重量単位kg(キログラム)と、ヤード・ポンド法の重量単位lb(ポンド)とについて、それぞれ異なる型が定義されている。したがって、ケース
myWeight isLighterThan 100 lb∋myEvidence
においては、ゴールに含まれる「100 lb」について、型が合わないことになる。そのため、この図24で示される検査対象情報について証明検査を行うと、図25で示されるように、エラーが検出されることになる。図25は、検査結果出力部13が表示した、証明検査の結果を示すものである。図25の上部では、エラーの箇所に下線が引かれ、その先頭にカーソルが位置することによって、エラーの箇所が明示されている。また、図25の下から5行目から下から3行目までで示される検査結果のうち、1行目(図25の下から5行目)を見ることによって、エラーの箇所(ファイル名:行番号,コラム番号)を知ることができ、3行目(図25の下から3行目)を見ることによって、「100 lb」が、期待されるところの型「MetricWeight」を持っていることを確認する際にエラーが判明したことを知ることができ、2行目(図25の下から4行目)を見ることによって、その「100 lb」の型であるImperialWeightは、MetricWeightには変換できない旨のエラーの内容を知ることができる。このように、検査対象情報において、証明検査の対象としたいものについて適宜、型を定義して記述することによって、所望のものを証明検査の対象とすることができる。
Next, as an example of an error other than the above description, it will be described that an error with a different numerical unit is detected in a certification test. First, it is assumed that the inspection target information shown in FIG. 24 is stored in the inspection target storage unit 11 as part of the model information. In this inspection object, different types are defined for the metric weight unit kg (kilogram) and the yard / pound weight unit lb (pound). Therefore, the case myWeight isLightThan 100 lb∋myEvidence
In the case of “100 lb” included in the goal, the types do not match. For this reason, when the certification inspection is performed on the inspection object information shown in FIG. 24, an error is detected as shown in FIG. FIG. 25 shows the result of the certification inspection displayed by the inspection result output unit 13. In the upper part of FIG. 25, the error part is underlined and the cursor is positioned at the head of the error part, thereby clearly indicating the error part. Also, by looking at the first line (the fifth line from the bottom of FIG. 25) of the inspection results shown from the fifth line from the bottom to the third line from the bottom of FIG. 25, the location of the error (file name: Knows the line number, column number), and by looking at the third line (the third line from the bottom of FIG. 25), "100 lb" has the expected type "MetricWeight" By checking the second line (the fourth line from the bottom of FIG. 25), the ImperialWeight of the type “100 lb” is converted to MetricWeight. You can know the details of the error to the effect. As described above, in the inspection object information, by appropriately defining and describing what is desired to be the object of the proof inspection, the desired object can be the object of the proof inspection.

また、Agda言語での正確な記述をする場合には、演算子と引数との間はすべて空白で区切られている必要があり、コロンや等号の前後に空白が必要であるが、上記具体例においては、説明の便宜上、その空白を省略した箇所がある。   In addition, when describing accurately in the Agda language, the operator and the argument must all be separated by white space, and white space is required before and after the colon and equal signs. In the example, there is a part where the blank is omitted for convenience of explanation.

以上のように、本実施の形態による整合性検査装置1によれば、アシュランス・ケースのような整合性の検査対象であるケースの整合性を、証明検査(プルーフチェック)によって自動的に検査することができる。したがって、推論規則の適用のしかたが不適切であったり、あらかじめ規定されている場合分けと異なる場合分けが行われていたり、使用する単位が異なっていたりした場合には、そのエラーを検出することができる。その結果、そのエラーを修正し、整合性を有するケースを構築することができる。また、その自動的な検査を、定理証明支援系を用いて行うことによって、検査を行う独自のソフトウェアを開発する必要がなくなる。また、翻訳部16によって、人工言語で記述された検査対象情報をグラフ情報に変換することによって、その人工言語による記述に不慣れな者であっても、ケースの構造を容易に把握することができるようになる。また、グラフ情報を検査対象情報に翻訳することも可能であるため、その人工言語に精通していないユーザは、グラフ情報においてケースの編集を行い、その編集後のケースに応じたグラフ情報を検査対象情報に翻訳することによって、人工言語で記述された検査対象情報を生成することも可能である。また、そのようにして翻訳された検査対象情報に対して証明検査を行うことによって、グラフ情報において生成されたケースにエラーが存在するかどうかを確認することもできる。   As described above, according to the consistency inspection apparatus 1 according to the present embodiment, the consistency of a case to be inspected for consistency such as an assurance case is automatically inspected by a proof inspection (proof check). can do. Therefore, if the application of inference rules is inappropriate, the case is different from the case specified in advance, or the unit used is different, the error should be detected. Can do. As a result, the error can be corrected and a consistent case can be constructed. In addition, by performing the automatic inspection using the theorem proof support system, it is not necessary to develop original software for performing the inspection. Further, by converting the inspection object information described in the artificial language into the graph information by the translation unit 16, even a person unfamiliar with the description in the artificial language can easily grasp the structure of the case. It becomes like this. In addition, since graph information can be translated into information to be inspected, a user who is not familiar with the artificial language edits the case in the graph information and inspects the graph information according to the edited case. It is also possible to generate inspection object information described in an artificial language by translating into object information. It is also possible to check whether there is an error in the case generated in the graph information by performing a proof test on the inspection target information translated in this way.

また、アシュランス・ケース等の整合性の検査対象であるケースは、最終的にはリーフであるエビデンスによって証明されることになる。したがって、エビデンスが変更された場合などには、その変更後のエビデンスを用いて検査対象情報について証明検査を行うことで、整合性の検査対象であるケースの整合性が担保されているかどうかを簡単に確認することができる。また、そのような場合には、エビデンスを入力データとして、整合性を検査していると考えることもできる。   In addition, a case that is a subject of consistency check such as an assurance case is finally proved by evidence that is a leaf. Therefore, when the evidence is changed, etc., it is possible to easily verify whether the consistency of the case subject to the consistency inspection is guaranteed by performing a proof inspection on the inspection target information using the evidence after the change. Can be confirmed. In such a case, it can be considered that consistency is inspected using evidence as input data.

なお、本実施の形態では、特に図3〜図8のフローチャートで示される翻訳に関する処理では、ケースが木構造を有する場合について説明したが、前述のように、ケースは、有向非巡回グラフの構造を有してもよい。したがって、ここでは、有向非巡回グラフの構造を有するケースに応じた検査対象情報について説明し、そのような検査対象情報をグラフ情報に翻訳する場合の処理と、また、そのようなグラフ情報を検査対象情報に翻訳する場合の処理とについて説明する。有向非巡回グラフの構造を有する場合には、あるノードが2以上の親ノードを有することになる。その場合には、図26で示されるように、検査対象情報において、let構文を用いて共有される部分グラフのルートノード、すなわち、2以上の親ノードを有するノードを共有することを宣言する。なお、そのノードを共有すると言うことは、言い換えれば、そのノードをルートノードとする部分グラフを共有することになる。具体的な記述としては、図26で示されるように、Evidence−Aが共有される場合には、そのEvidence−Aを「myShareEvidence」と定義する。その定義の次の行に存在するPragma{−# DCASE mySharedEvidence shared #−}は、部分グラフを共有する旨の宣言であることを示すものである。このPragmaが存在することによって、局所モデル情報等を含むlet構文と区別することができる。なお、inより後の議論構造において、2回、myShareEvidenceが出てくるが、それらは、letとinとの間で定義した通り、Evidence−Aである。なお、Agda言語を、検査対象情報を記述する人工言語として用いる具体例においては、ゴールノードやストラテジノード、エビデンスノードが2以上の親ノードを有することは想定しているが、コンテキストノードが2以上の親ノードを有することは想定していない。コンテキストノードが2以上の親ノードを有する場合には、その親ノードのすべてに共通する祖先ノードを、そのコンテキストノードの親ノードとすることによって、コンテキストノードが2以上の親ノードを有さないようにすることができるからである。また、ゴールノードの子ノードとしては、コンテキストノード以外のノードが複数存在することはないものとする。   In the present embodiment, the case where the case has a tree structure has been described particularly in the processes related to translation shown in the flowcharts of FIGS. 3 to 8. However, as described above, the case is a directed acyclic graph. It may have a structure. Therefore, here, the inspection object information corresponding to the case having the structure of the directed acyclic graph will be described, and the processing in the case of translating such inspection object information into the graph information, and such graph information A process for translating into inspection object information will be described. In the case of having a directed acyclic graph structure, a certain node has two or more parent nodes. In that case, as shown in FIG. 26, in the inspection target information, it is declared that the root node of the subgraph shared using the let syntax, that is, the node having two or more parent nodes is shared. Note that sharing that node means sharing a subgraph whose root node is that node. As a specific description, as shown in FIG. 26, when Evidence-A is shared, Evidence-A is defined as “myShareEvidence”. Pragma {-# DCASE mySharedEvidence shared #-} in the next line of the definition indicates a declaration that the subgraph is shared. The presence of this Pragma can be distinguished from a let syntax including local model information and the like. In the discussion structure after “in”, myShareEvidence appears twice, and is defined as “Evidence-A” as defined between let and in. In the specific example in which the Agda language is used as an artificial language for describing the inspection target information, it is assumed that the goal node, strategy node, and evidence node have two or more parent nodes, but there are two or more context nodes. Is not assumed to have any parent node. When a context node has two or more parent nodes, an ancestor node common to all of the parent nodes is set as the parent node of the context node so that the context node does not have two or more parent nodes. It is because it can be made. In addition, as a child node of the goal node, a plurality of nodes other than the context node do not exist.

このような有向非巡回グラフの構造を有するケースに応じた検査対象情報をグラフ情報に翻訳する場合には、検査対象情報にlet構文が存在する場合に、そのlet構文がノードの共有のためのものか、それ以外のものかを判断する。その判断は、前述のPragmaを用いて判断することができる。そして、ノードの共有のためのlet構文である場合には、翻訳部16は、letとinとの間で記述されている定義(図26の例では、「myShareEvidence=Evidence−A」)を一時的に記憶しておく。そして、myShareEvidenceの項に対応するノードを生成する処理(ステップS302,S402)において、翻訳部16は、すでにそのノードが存在するかどうか判断し、まだ存在しない場合には、その定義に応じてノードの生成を行う。一方、すでに存在する場合には、そのノードの生成を行わず、上位のフローチャートに戻るようにしてもよい。そのようにすることで、共有されているノードに応じた項が1回目に出てきたときには、通常通り、その項に対応するノードが生成されるが、その項の2回目以降の出現に対しては、ノード自体は生成されず、1回目の出現の際に生成されたノードへのリンクのみが生成されることになる。図26で示される検査対象情報が翻訳されたグラフ情報は、図27で示されるようになる。図27において、Evidence−Aのノードが共有されていることが分かる。   When the inspection target information corresponding to the case having the structure of the directed acyclic graph is translated into the graph information, when the let syntax exists in the inspection target information, the let syntax is shared by the nodes. Judge whether it is something or something else. The determination can be made using the aforementioned Pragma. Then, in the case of the let syntax for node sharing, the translation unit 16 temporarily defines the definition described between let and in (“myShareEvidence = Evidence-A” in the example of FIG. 26). Remember me. In the process of generating a node corresponding to the myShareEvidence item (steps S302 and S402), the translation unit 16 determines whether or not the node already exists. Is generated. On the other hand, if it already exists, the node may not be generated and the process may return to the upper flowchart. By doing so, when a term corresponding to a shared node appears for the first time, a node corresponding to that term is generated as usual, but for the second and subsequent occurrences of that term. Thus, the node itself is not generated, and only the link to the node generated at the first appearance is generated. The graph information obtained by translating the inspection target information shown in FIG. 26 is as shown in FIG. In FIG. 27, it can be seen that the node of Evidence-A is shared.

次に、図27に応じたグラフ情報を検査対象情報に翻訳する場合の処理について説明する。この場合には、翻訳部16は、グラフ情報を参照し、共有されているノード、すなわち、親ノードを2以上有するノード(例えば、Evidence−Aのノード)が存在するかどうか判断する。具体的には、翻訳部16は、あるノードをtargetノードとする2以上のリンクの情報が存在する場合に、共有されているノードが存在すると判断してもよい。その場合には、2以上のリンクの情報によってtargetノードとされているノードが、共有されているノードとなる。そして、翻訳部16は、その共有されているノード以下の部分グラフに応じた項について、新たな名前(例えば、「sharedEvidence」など)を付ける定義(例えば、「sharedEvidence=Evidence−A」など)を生成する。その名前は、例えば、「shared」と、ノードの種類を示す情報(例えば、「Goal」や「Strategy」、「Evidence」など)とをつなげたものであってもよい。また、その名称が重複する場合(例えば、共有されるエビデンスノードが2以上存在する場合など)には、その名前の最後に、適宜、「1」や「2」等の情報を付加してもよい。次に、翻訳部16は、その定義を挿入する位置(ノード)を特定する。その特定対象となるノードは、
(条件1)ルートノードからの経路が一通りである
(条件2)そのノードの子ノードに、共有されているノードの祖先であるものが2以上存在する
という2個の条件を満たすノードである。その特定対象のノードを特定する方法として、例えば、次のような処理を行ってもよい。まず、判断対象のノードをルートノードとする。また、判断対象のノードの子ノードに、共有されているノードの祖先であるノードが1個存在するのか、あるいは、2個以上存在するのか判断する。そして、2個以上存在する場合には、判断対象のノードが特定対象のノードとなる。一方、1個存在する場合には、その1個のノード(このノードは、ルートノードの子ノードである)を判断対象のノードとする。また、前述の処理と同様に、その判断対象のノードの子ノードに、共有されているノードの祖先であるノードが1個存在するのか、あるいは、2個以上存在するのか判断する。そして、2個以上存在する場合には、判断対象のノードが特定対象のノードとなる。一方、1個存在する場合には、その1個のノードを判断対象のノードとする。この処理を、判断対象のノードが特定対象のノードとなるまで繰り返して実行すればよいことになる。そして、特定対象のノードが特定できた後には、前述の説明と同様に、グラフ情報から検査対象情報を生成する処理を行う。その際に、共有されているノードについては、定義した名称の項を生成するものとする。また、図6で示される検査対象への翻訳の処理が終了した後に、特定対象ノード以下の部分グラフに応じた項「t」を、あらかじめ生成していた共有部分グラフに応じた項の定義「sharedEvidence=(共有部分グラフの項)」を含むlet構文の項で置き換える。具体的には、項tを、項
let
sharedEvidence=(共有部分グラフの項)
{−# DCASE sharedEvidence shared #−}
in

で置き換える。このようにして、有向非巡回グラフの構造を有するグラフ情報から検査対象情報への翻訳を行うことができる。なお、検査対象情報におけるlet構文の生成は、検査対象情報において順次、項や演算子を追加する際に行ってもよい。すなわち、特定対象のノードに応じた項が生成された時点で、共有部分グラフに応じた項の定義を含むlet構文を生成し、さらに、それ以降の項や演算子の生成の処理を継続するようにしてもよい。ここで、図26,図27の例の場合には、特定対象のノードは、topStragegyに応じたストラテジノードである。
Next, a process when the graph information corresponding to FIG. 27 is translated into the inspection object information will be described. In this case, the translation unit 16 refers to the graph information and determines whether there is a shared node, that is, a node having two or more parent nodes (for example, an Evidence-A node). Specifically, the translation unit 16 may determine that there is a shared node when there is information on two or more links having a certain node as a target node. In this case, a node that is a target node based on information of two or more links is a shared node. Then, the translation unit 16 defines a definition (for example, “sharedEvidence = Evidence-A”, etc.) for giving a new name (for example, “sharedEvidence”, etc.) to the term corresponding to the subgraph below the shared node. Generate. The name may be, for example, a combination of “shared” and information indicating the type of node (for example, “Goal”, “Strategie”, “Evidence”, etc.). In addition, when the names overlap (for example, when there are two or more shared evidence nodes), information such as “1” or “2” may be appropriately added to the end of the name. Good. Next, the translation unit 16 specifies a position (node) at which the definition is inserted. The node to be identified is
(Condition 1) There is one route from the root node (Condition 2) A node that satisfies the two conditions that there are two or more ancestors of the shared node among the child nodes of the node . As a method for specifying the node to be specified, for example, the following processing may be performed. First, a determination target node is set as a root node. Further, it is determined whether there is one node that is an ancestor of the shared node or two or more child nodes of the node to be determined. If there are two or more, the node to be determined becomes the node to be specified. On the other hand, if there is one, that one node (this node is a child node of the root node) is determined as a determination target node. Further, similarly to the above-described processing, it is determined whether there is one node that is an ancestor of the shared node among the child nodes of the determination target node, or whether there are two or more nodes. If there are two or more, the node to be determined becomes the node to be specified. On the other hand, if there is one, that one node is set as a determination target node. This process may be repeated until the node to be determined becomes the node to be specified. Then, after the node to be specified can be specified, processing for generating inspection target information from the graph information is performed in the same manner as described above. In this case, a term with a defined name is generated for the shared node. In addition, after the process of translation into the inspection target illustrated in FIG. 6 is finished, the term “t” corresponding to the subgraph below the specific target node is defined as the term “t” corresponding to the previously generated shared subgraph “ Replace with a term of let syntax including “sharedEvidence = (term of shared subgraph)”. Specifically, the term t is replaced with the term let.
sharedEvidence = (shared subgraph term)
{-# DCASE sharedEvidence shared #-}
in
t
Replace with. In this way, the translation from the graph information having the structure of the directed acyclic graph to the inspection object information can be performed. Note that generation of the let syntax in the inspection target information may be performed when a term or an operator is sequentially added to the inspection target information. That is, when a term corresponding to a specific target node is generated, a let syntax including a term definition corresponding to a shared subgraph is generated, and further generation processing of subsequent terms and operators is continued. You may do it. Here, in the case of the example of FIGS. 26 and 27, the node to be specified is a strategy node corresponding to topStorage.

また、本実施の形態において、メタ変数を用いることによって、整合性の検査対象であるケースに応じた未完成の検査対象情報や未完成のグラフ情報についても証明検査を行うようにしてもよい。そのためには、検査対象情報を記述する人工言語として、対話型証明支援系の人工言語を用いることが好適である。これは、対話型証明支援系の人工言語であれば、検査部12が、メタ変数を含む項を有する検査対象情報についても証明検査(プルーフチェック)を行うことができるからである。なお、前述のAgda言語は、対話型証明支援系の人工言語の一例である。ここで、メタ変数とは、未完成(作成途中)の項の中で、最終的には正式な記述がなされる部分を示すプレースホールダ、すなわち、「この部分は、今は未定の穴開き状態であるが、将来は具体的な部分項で埋められる部分である」という部分を示すプレースホールダである。なお、そのメタ変数を含む検査対象情報は、グラフ情報から翻訳されたものであってもよく、あるいは、そうでなくてもよい。後者の場合としては、例えば、ユーザが検査対象情報を人工言語での記述として入力する際に、メタ変数を用いる場合があり得る。このように、メタ変数を用いて記述された検査対象情報について証明検査を行うことによって、作成途中の検査対象情報(あるいは、その検査対象情報の翻訳元の作成途中のグラフ情報)に誤りがあるかどうかを確認することができ、誤りがある場合には、適宜、その誤りを解消するように検査対象情報(あるいは、その検査対象情報の翻訳元のグラフ情報)を修正することができる。したがって、メタ変数を含む検査対象情報の証明検査は、検査対象情報に変更が加えられるごとに行われることが好適である。また、グラフ情報が作成されている場合には、作成途中のグラフ情報に変更が加えられるごとに、翻訳と、その翻訳後のメタ変数の項を含む検査対象情報の証明検査とが行われることが好適である。なお、メタ変数を含んだ検査対象情報の証明検査については、次の情報を参照されたい。
情報:Ulf Norell.Type checking in the presence of meta−variables.In TYPES 2007,Cividale del Friuli,Italy,2007年5月
(conference url:http://users.dimi.uniud.it/types07/)
情報:Catarina Coquand and Thierry Coquand.Structured type theory. In Workshop on Logical Frameworks and Meta−languages,Paris,France,1999年9月
(workshop url: http://www.site.uottawa.ca/〜afelty/LFM99/index.html)
Further, in the present embodiment, by using a meta variable, proof inspection may be performed on incomplete inspection target information and incomplete graph information corresponding to a case that is a consistency inspection target. For this purpose, it is preferable to use an artificial language of an interactive proof support system as an artificial language that describes information to be examined. This is because, in the case of an interactive proof-supporting artificial language, the inspection unit 12 can perform proof inspection (proof check) even on inspection target information having a term including a meta variable. The above-mentioned Agda language is an example of an interactive proof support system artificial language. Here, the meta variable is a placeholder that indicates the part that is finally officially described in the incomplete (under construction) term, that is, “This part is currently in an undecided opening state. However, in the future, it is a placeholder that indicates a portion that will be filled with a specific partial term. Note that the inspection object information including the meta variable may or may not be translated from the graph information. As the latter case, for example, when the user inputs inspection object information as a description in an artificial language, a meta variable may be used. In this way, by performing proof inspection on inspection object information described using meta variables, there is an error in the inspection object information in the process of creation (or graph information in the process of creating the translation source of the inspection object information). If there is an error, the inspection object information (or the graph information of the translation source of the inspection object information) can be appropriately corrected so as to eliminate the error. Therefore, it is preferable that the proof inspection of the inspection target information including the meta variable is performed every time the inspection target information is changed. In addition, when graph information has been created, every time changes are made to the graph information that is being created, translation and proof inspection of the information to be inspected, including the meta-variable terms after translation, must be performed. Is preferred. Please refer to the following information for proof inspection of inspection object information including meta variables.
Information: Ulf Norell. Type checking in the presence of meta-variables. In TYPES 2007, Cividal del Friuli, Italy, May 2007 (conference url: http://users.dimi.uniud.it/types07/)
Information: Catarina Coquad and Thierry Coquad. Structured type theory. In Workshop on Logical Frameworks and Meta-languages, Paris, France, September 1999 (workshop url: http://www.site.uttawa.ca/~Laffle)

ここで、メタ変数を含む検査対象情報や、グラフ情報の例について簡単に説明する。図28は、メタ変数を含む検査対象情報の一例である。図28において、メタ変数{!!}が用いられている。したがって、この場合には、ゴールノードの項「TopGoal」以下が未定である。なお、図28の検査対象情報は、図29に応じたグラフ情報が翻訳されたものであると考えてもよい。図29では、ゴールノードの子ノード側が未定であるため、value="?"を有するエビデンスノードが設定されている。翻訳部16は、value="?"を有するエビデンスノードを、メタ変数{!!}の項に変換するものとする。なお、検査部12が、図28の検査対象情報について証明検査を行ったとしても、エラーは検出されない。その証明検査は、対話型証明支援系のプルーフチェッカーによる証明検査である。   Here, an example of inspection object information including meta variables and graph information will be briefly described. FIG. 28 is an example of inspection object information including meta variables. In FIG. 28, the meta variable {! ! } Is used. Therefore, in this case, the term of the goal node “TopGoal” or less is undecided. Note that the inspection object information in FIG. 28 may be considered to be obtained by translating the graph information according to FIG. In FIG. 29, since the child node side of the goal node is undetermined, an evidence node having value = “?” Is set. The translation unit 16 converts the evidence node having value = “?” Into the meta variable {! ! } Shall be converted into a term. Even if the inspection unit 12 performs a proof inspection on the inspection target information in FIG. 28, no error is detected. The proof check is a proof check by a proof checker of an interactive proof support system.

次に、ユーザが、ゴールノードの項「TopGoal」に対して、ストラテジノードの項等を新たに設定し、検査対象情報が図30で示されるようになったとする。なお、この場合にも、ユーザが、D−Case Editor等を用いてグラフ情報を変更し、その結果、図31に応じたグラフ情報が生成され、そのグラフ情報の翻訳結果が図30で示される検査対象情報であると考えてもよい。図30の検査対象情報では、サブゴールノードの項「SubGoal−A」、「SubGoal−B」以下が未定であり、その箇所にメタ変数{!!}がそれぞれ設定されている。この場合にも、図30の検査対象情報について証明検査が行われても、エラーは検出されない。   Next, it is assumed that the user newly sets a strategy node term or the like for the goal node term “TopGoal” and the inspection target information is as shown in FIG. Also in this case, the user changes the graph information using D-Case Editor or the like, and as a result, the graph information corresponding to FIG. 31 is generated, and the translation result of the graph information is shown in FIG. You may think that it is inspection object information. In the inspection target information in FIG. 30, the subgoal node terms “SubGoal-A” and “SubGoal-B” are undecided, and a meta variable {! ! } Is set. Also in this case, no error is detected even if the certification inspection is performed on the inspection object information in FIG.

さらに、ユーザが、サブゴールノードの項「SubGoal−A」に対して、エビデンスノードの項「Evidence−A」を新たに設定し、検査対象情報が図32のようになったとする。なお、この場合にも、ユーザが、D−Case Editor等を用いてグラフ情報を変更し、その結果、図33に応じたグラフ情報が生成され、そのグラフ情報の翻訳結果が図32で示される検査対象情報であると考えてもよい。この場合にも、図32の検査対象情報について証明検査が行われても、エラーは検出されない。   Furthermore, it is assumed that the user newly sets the evidence node term “Evidence-A” for the subgoal node term “SubGoal-A” and the inspection target information is as shown in FIG. Also in this case, the user changes the graph information using D-Case Editor or the like, and as a result, the graph information corresponding to FIG. 33 is generated, and the translation result of the graph information is shown in FIG. You may think that it is inspection object information. Also in this case, no error is detected even if the certification inspection is performed on the inspection object information in FIG.

一方、ユーザが、図30で示される検査対象情報において、図34で示されるように、サブゴールノードの項「SubGoal−A」に対応したエビデンスノードの項として、「Evidence−B」を入力しようとしたとする。この場合には、SubGoal−Aと、Evidence−Bとの型が異なるため、検査部12は、証明検査の結果としてエラーを返し、入力の受け付けを拒否する。そして、ユーザは、検査結果出力部13が表示した図35の下部3行で示される検査結果を見ることによって、エラーの箇所(一行目に記述されている「ファイル名:行番号,コラム番号」)と、そのエラーの内容(三行目に記述されている「(入力された項)Evidence−Bが(期待されるところの)型SubGoal−Aを持っていることを確認する際にエラーが判明した」、二行目に記述されている「(入力された項の型)SubGoal−Bは、SubGoal−Aには変換できない(両者をSet型の要素と見たとき)」)とを知ることができるようになる。その結果、ユーザは、そのエラーを解消するために、検査対象情報を図32で示されるように変更することができる。なお、メタ変数に入れようとする項は、メタ変数を含んでいてもよく、あるいは、含んでいなくてもよい。図34では、メタ変数を含むエビデンスノードの項「Evidence−B」が設定されている場合について示している。   On the other hand, in the inspection object information shown in FIG. 30, the user tries to input “Evidence-B” as the evidence node term corresponding to the subgoal node term “SubGoal-A” as shown in FIG. Suppose that In this case, since the types of SubGoal-A and Evidence-B are different, the checking unit 12 returns an error as a result of the certification check and refuses to accept the input. Then, the user looks at the inspection result shown in the lower three lines of FIG. 35 displayed by the inspection result output unit 13 to determine the location of the error (“file name: line number, column number” described in the first line). ) And the content of the error (described in the third line "(input item) Evidence-B has an error when confirming that it has type SubGoal-A (expected)) “Okay”, “(input term type) SubGoal-B cannot be converted to SubGoal-A (when both are viewed as Set type elements)”) Will be able to. As a result, the user can change the inspection object information as shown in FIG. 32 in order to eliminate the error. Note that the term to be included in the meta variable may or may not include the meta variable. FIG. 34 shows a case where the evidence node term “Evidence-B” including the meta variable is set.

ユーザが、人工言語での記述において、メタ変数に型の合わない項を入力しようとする場合は上のように入力操作自体が拒否されるが、D−Case Editor等での誤った図的編集は、それ自体は拒否されず、翻訳を経て証明検査をした時点で誤りが判明する。この場合でも、未完成のケースの整合性を検査できることにより、早い段階で誤りを見つけることができる。ユーザが、図31に応じたグラフ情報において、図36で示されるように、サブゴールノード「SubGoal−A」に対応したエビデンスノードとして、「Evidence−B」を設定したとする。ユーザは、ケースが未完成なまま、そのグラフ情報を、翻訳部16によって、図37で示される検査対象情報に翻訳できる。この場合にも、SubGoal−Aと、Evidence−Bとの型が異なるため、検査部12は、証明検査の結果としてエラーを返す。そして、ユーザは、検査結果出力部13が表示した図38で示される検査結果を見ることによって、エラーの箇所と、そのエラーの内容とを知ることができるようになる。その結果、ユーザは、そのエラーを解消するために、検査対象情報を図32で示されるように変更することができる。   When a user tries to input an untyped term in a meta variable in the description in an artificial language, the input operation itself is rejected as described above, but incorrect graphical editing in D-Case Editor etc. Is not rejected in itself, but the error is revealed when it is verified through translation. Even in this case, an error can be found at an early stage by checking the consistency of an incomplete case. Suppose that the user sets “Evidence-B” as an evidence node corresponding to the subgoal node “SubGoal-A” in the graph information corresponding to FIG. 31 as shown in FIG. The user can translate the graph information into the inspection object information shown in FIG. 37 by the translation unit 16 while the case is incomplete. Also in this case, since the type of SubGoal-A and Evidence-B is different, the inspection unit 12 returns an error as a result of the certification inspection. Then, the user can know the location of the error and the content of the error by looking at the inspection result shown in FIG. 38 displayed by the inspection result output unit 13. As a result, the user can change the inspection object information as shown in FIG. 32 in order to eliminate the error.

上記説明のように、検査対象情報において、メタ変数を含む項の記載を許容し、そのメタ変数を含む検査対象情報についても証明検査を行うことによって、作成途中の検査対象情報や、作成途中のグラフ情報に誤りがあるかどうかを確認することができる。そして、誤りがあれば、それを訂正することによって、適切な検査対象情報やグラフ情報にすることができる。一方、誤りがなければ、その後に適切に検査対象情報やグラフ情報を構築することによって、誤りのない検査対象情報やグラフ情報を構築できる可能性のあることを知ることができる。なお、上記説明において、グラフ情報から検査対象情報への翻訳時のモデル情報の取り扱いについて特に言及しなかったが、そのモデル情報は、前述のように、例えば、グラフ情報において不可視情報として存在し、その不可視情報であるモデル情報が検査対象情報に含まれるようになってもよく、グラフ情報において、コンテキストノードの内容によってモデル情報が設定され、そのモデル情報が検査対象情報に含まれるようになってもよく、または、グラフ情報から検査対象情報への翻訳時にはモデル情報が生成されず、その翻訳の後に、モデル情報を別途に人工言語での記述として入力するようにしてもよい。また、上記説明においては、メタ変数を含むグラフ情報としては、メタ変数のみからなるエビデンスノードを持つグラフ情報について説明したが、そうでなくてもよい。例えば、ゴールノードあるいはストラテジノードの項がメタ変数であってもよく、またはそれらの項自体はメタ変数でなくそれらの項の一部としてメタ変数が現れてもよい。またあるいは、グラフ情報の構成要素としてノードとリンクだけでなく「部分グラフ」も認めるグラフ情報の表記において、メタ変数を未確定部分グラフに対応付けることによって、「未確定アーギュメント」や「未確定ケース」を扱ってもよい。また、上記説明で参照した一連の各検査対象情報において、検査対象情報ごとにモジュール名が異なっていたり、検査対象情報ごとに異なるコメントが記載されていたりするが、それらは時系列中の時点々々での様態を記録するための便宜上のものであり、同じモジュール名が使用され、コメントが存在しないと考えてもよい。   As described above, in the inspection target information, it is allowed to describe the term including the meta variable, and the inspection target information including the meta variable is also verified, so that the inspection target information being created or It is possible to check whether there is an error in the graph information. If there is an error, it can be corrected to appropriate inspection object information or graph information. On the other hand, if there is no error, it is possible to know that there is a possibility that inspection object information and graph information without error can be constructed by appropriately constructing inspection object information and graph information thereafter. In the above description, the handling of the model information at the time of translation from the graph information to the inspection object information was not particularly mentioned, but the model information exists as invisible information in the graph information as described above, for example, The model information that is invisible information may be included in the inspection target information, and in the graph information, the model information is set according to the content of the context node, and the model information is included in the inspection target information. Alternatively, the model information may not be generated when the graph information is translated into the inspection target information, and the model information may be separately input as a description in an artificial language after the translation. In the above description, the graph information including the evidence variable having only the meta variable has been described as the graph information including the meta variable, but this need not be the case. For example, the goal node or strategy node terms may be metavariables, or the terms themselves may appear as part of those terms rather than metavariables. Alternatively, in the notation of graph information that accepts not only nodes and links but also “subgraphs” as components of graph information, by associating meta-variables with uncertain subgraphs, “undefined arguments” and “undefined cases” May handle. In addition, in each series of inspection object information referred to in the above description, the module name is different for each inspection object information or a different comment is described for each inspection object information. It is for convenience to record various aspects, and it may be considered that the same module name is used and no comment exists.

また、本実施の形態による整合性検査装置1では、実行部14を備え、検査対象情報を実行する場合について説明したが、そうでなくてもよい。検査対象情報に関する実行を行わなくてもよい場合には、整合性検査装置1は、実行部14を備えていなくてもよい。また、検査対象情報に関する実行を行わない場合には、検査対象情報は、構成的型理論ではない型理論に基づく人工言語で記述されたものであってもよい。   In the consistency inspection apparatus 1 according to this embodiment, the execution unit 14 is provided and the inspection target information is executed. However, this need not be the case. In the case where it is not necessary to perform the execution regarding the inspection target information, the consistency inspection apparatus 1 may not include the execution unit 14. Further, in the case where the execution relating to the inspection target information is not performed, the inspection target information may be described in an artificial language based on a type theory that is not a structural type theory.

また、本実施の形態では、検査対象情報からグラフ情報への翻訳と、グラフ情報から検査対象情報への翻訳との両方を行う場合について説明したが、そうでなくてもよい。翻訳部16は、いずれか一方の翻訳を行うものであってもよい。また、翻訳を行わなくてもよい場合には、整合性検査装置1は、翻訳部16やグラフ記憶部15を備えていなくてもよい。   Moreover, although this embodiment demonstrated the case where both the translation from inspection object information to graph information and the translation from graph information to inspection object information were performed, it may not be so. The translation unit 16 may perform any one of the translations. In addition, when the translation does not need to be performed, the consistency checking device 1 may not include the translation unit 16 and the graph storage unit 15.

また、本実施の形態では、整合性検査装置1が表示部17や受付部18を備える構成について説明したが、そうでなくてもよい。整合性検査装置1が表示部17を有さない場合には、整合性検査装置1は、例えば、検査対象記憶部11で記憶されている検査対象情報にエラーが存在するかどうかを検査するためだけの装置であってもよい。また、整合性検査装置1が受付部18を有さない場合には、整合性検査装置1は、例えば、外部から着脱可能な記録媒体等によって提供された検査対象情報にエラーが存在するかどうかを検査する装置であってもよい。   In the present embodiment, the configuration in which the consistency inspection apparatus 1 includes the display unit 17 and the reception unit 18 has been described, but this need not be the case. When the consistency inspection apparatus 1 does not have the display unit 17, the consistency inspection apparatus 1 inspects whether there is an error in the inspection object information stored in the inspection object storage unit 11, for example. Only a device may be used. Further, when the consistency inspection apparatus 1 does not have the receiving unit 18, the consistency inspection apparatus 1 determines whether there is an error in the inspection target information provided by, for example, an externally removable recording medium. It may be a device for inspecting.

また、本実施の形態で説明したノードの種類、演算子や項の種類は一例であり、それら以外のノードの種類や、演算子や項の種類が存在してもよいことは言うまでもない。また、アシュランス・ケース等の整合性の検査対象であるケースが有する情報のうち、Agda等の人工言語で記述する範囲、すなわち、検査対象情報で記述する範囲を多くすればするほど、整合性の検査対象もより広がることになる。したがって、より多くの範囲を検査対象情報において記述することが好適である。   In addition, the types of nodes, the types of operators and terms described in the present embodiment are examples, and it is needless to say that other types of nodes, types of operators and terms may exist. In addition, among the information possessed by a case to be checked for consistency, such as an Assurance case, the more the range described in an artificial language such as Agda, that is, the range described in the information to be checked, the more consistent The scope of inspection will also be expanded. Therefore, it is preferable to describe a larger range in the inspection object information.

また、本実施の形態では、モデル情報がpostulateの宣言のみを有する場合について主に説明したが、モデル情報には、それ以外の宣言が含まれてもよいことは言うまでもない。モデル情報は、例えば、postulate以外の種類の宣言である、データ型定義、レコード型定義、関数定義、または、他のモジュールのインポート宣言等を含んでいてもよい。   In the present embodiment, the case where the model information has only the declaration of poster has been mainly described. Needless to say, the model information may include other declarations. The model information may include, for example, a data type definition, a record type definition, a function definition, or an import declaration of another module, which is a declaration of a type other than poster.

また、上記実施の形態では、整合性検査装置1がスタンドアロンである場合について説明したが、整合性検査装置1は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や表示部、受付部は、通信回線を介して情報を出力したり、情報を表示したり、入力を受け付けたりしてもよい。   In the above-described embodiment, the case where the consistency checking apparatus 1 is a stand-alone has been described. However, the consistency checking apparatus 1 may be a stand-alone apparatus or a server apparatus in a server / client system. Good. In the latter case, the output unit, the display unit, and the reception unit may output information, display information, or receive input via a communication line.

また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。   In the above embodiment, each process or each function may be realized by centralized processing by a single device or a single system, or may be distributedly processed by a plurality of devices or a plurality of systems. It may be realized by doing.

また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。   In the above embodiment, the information exchange between the components is performed by one component when, for example, the two components that exchange the information are physically different from each other. It may be performed by outputting information and receiving information by the other component, or when two components that exchange information are physically the same, one component May be performed by moving from the phase of the process corresponding to to the phase of the process corresponding to the other component.

また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。   In the above embodiment, information related to processing executed by each component, for example, information received, acquired, selected, generated, transmitted, or received by each component In addition, information such as threshold values, mathematical formulas, addresses, etc. used by each component in processing is retained temporarily or over a long period of time on a recording medium (not shown) even when not explicitly stated in the above description. It may be. Further, the storage of information in the recording medium (not shown) may be performed by each component or a storage unit (not shown). Further, reading of information from the recording medium (not shown) may be performed by each component or a reading unit (not shown).

また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していない場合であっても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。   In the above embodiment, when information used by each component, for example, information such as a threshold value, an address, and various setting values used by each component may be changed by the user Even if it is not specified in the above description, the user may be able to change the information as appropriate, or it may not be. If the information can be changed by the user, the change is realized by, for example, a not-shown receiving unit that receives a change instruction from the user and a changing unit (not shown) that changes the information in accordance with the change instruction. May be. The change instruction received by the receiving unit (not shown) may be received from an input device, information received via a communication line, or information read from a predetermined recording medium, for example. .

また、上記実施の形態において、整合性検査装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。   In the above embodiment, when two or more components included in the consistency inspection apparatus 1 include a communication device or an input device, the two or more components have a physically single device. Or may have separate devices.

また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における整合性検査装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとを含む有向非巡回グラフの構造を有する、整合性の検査対象であるケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報であり、証明検査の対象となる人工言語により記述された情報である検査対象情報が記憶される検査対象記憶部にアクセス可能なコンピュータを、検査対象情報に対して証明検査を行う検査部、検査部による証明検査の結果を出力する検査結果出力部として機能させるためのプログラムである。   In the above embodiment, each component may be configured by dedicated hardware, or a component that can be realized by software may be realized by executing a program. For example, each component can be realized by a program execution unit such as a CPU reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory. In addition, the software which implement | achieves the consistency inspection apparatus 1 in the said embodiment is the following programs. In other words, this program is a directed acyclic including a goal node corresponding to an objective, an evidence node corresponding to a basis for proving the objective, and a strategy node that decomposes one goal node into one or more goal nodes. The case of the consistency check target having a graph structure is information described using a term corresponding to each node and an operator corresponding to the parent-child relationship of each node. A computer that can access an inspection object storage unit that stores information to be inspected, which is information described in an artificial language, an inspection unit that performs proof inspection on the inspection object information, and outputs a result of proof inspection by the inspection unit It is a program for functioning as an inspection result output unit.

なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。   In the program, the functions realized by the program do not include functions that can be realized only by hardware. For example, a function that can be realized only by hardware such as a modem or an interface card in an output unit that outputs information is not included in at least the function realized by the program.

また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。   Further, this program may be executed by being downloaded from a server or the like, and a program recorded on a predetermined recording medium (for example, an optical disk such as a CD-ROM, a magnetic disk, a semiconductor memory, or the like) is read out. May be executed by Further, this program may be used as a program constituting a program product.

また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。   Further, the computer that executes this program may be singular or plural. That is, centralized processing may be performed, or distributed processing may be performed.

図39は、上記プログラムを実行して、上記実施の形態による整合性検査装置1を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。   FIG. 39 is a schematic diagram showing an example of the appearance of a computer that executes the program and realizes the consistency checking apparatus 1 according to the embodiment. The above-described embodiment can be realized by computer hardware and a computer program executed on the computer hardware.

図39において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。   39, a computer system 900 includes a computer 901 including a CD-ROM (Compact Disk Read Only Memory) drive 905 and an FD (Floppy (registered trademark) Disk) drive 906, a keyboard 902, a mouse 903, a monitor 904, and the like. Is provided.

図40は、コンピュータシステム900の内部構成を示す図である。図40において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANやWAN等への接続を提供する図示しないネットワークカードを含んでいてもよい。   FIG. 40 is a diagram showing an internal configuration of the computer system 900. 40, in addition to the CD-ROM drive 905 and the FD drive 906, a computer 901 is connected to an MPU (Micro Processing Unit) 911, a ROM 912 for storing a program such as a bootup program, and the MPU 911. A RAM (Random Access Memory) 913 that temporarily stores program instructions and provides a temporary storage space, a hard disk 914 that stores application programs, system programs, and data, and an MPU 911 and a ROM 912 are interconnected. And a bus 915. The computer 901 may include a network card (not shown) that provides connection to a LAN, WAN, or the like.

コンピュータシステム900に、上記実施の形態による整合性検査装置1の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。   A program for causing the computer system 900 to execute the function of the consistency checking device 1 according to the above-described embodiment is stored in the CD-ROM 921 or the FD 922, inserted into the CD-ROM drive 905 or the FD drive 906, and the hard disk 914. May be forwarded to. Instead, the program may be transmitted to the computer 901 via a network (not shown) and stored in the hard disk 914. The program is loaded into the RAM 913 when executed. The program may be loaded directly from the CD-ROM 921, the FD 922, or the network.

プログラムは、コンピュータ901に、上記実施の形態による整合性検査装置1の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。   The program does not necessarily include an operating system (OS), a third-party program, or the like that causes the computer 901 to execute the functions of the consistency check apparatus 1 according to the above-described embodiment. The program may include only a part of an instruction that calls an appropriate function (module) in a controlled manner and obtains a desired result. How the computer system 900 operates is well known and will not be described in detail.

また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   Further, the present invention is not limited to the above-described embodiment, and various modifications are possible, and it goes without saying that these are also included in the scope of the present invention.

以上より、本発明による整合性検査装置等によれば、整合性の検査対象であるケースの整合性を自動的に検査できるという効果が得られ、そのような検査を行う装置等として有用である。   As described above, according to the consistency inspection apparatus or the like according to the present invention, the effect that the consistency of the case that is the object of the consistency inspection can be automatically inspected is obtained, and it is useful as an apparatus for performing such an inspection. .

1 整合性検査装置
11 検査対象記憶部
12 検査部
13 検査結果出力部
14 実行部
15 グラフ記憶部
16 翻訳部
17 表示部
18 受付部
DESCRIPTION OF SYMBOLS 1 Consistency inspection apparatus 11 Inspection object memory | storage part 12 Inspection part 13 Inspection result output part 14 Execution part 15 Graph memory | storage part 16 Translation part 17 Display part 18 Reception part

Claims (12)

目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとを含む有向非巡回グラフの構造を有する、整合性の検査対象であるケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報であり、証明検査の対象となる人工言語により記述された情報である検査対象情報が記憶される検査対象記憶部と、
前記検査対象情報に対して証明検査を行う検査部と、
前記検査部による証明検査の結果を出力する検査結果出力部と、を備えた整合性検査装置。
Having a directed acyclic graph structure including a goal node corresponding to an objective, an evidence node corresponding to a basis for proving the objective, and a strategy node that decomposes one goal node into one or more goal nodes; Cases that are subject to consistency checking are information described using terms corresponding to each node and operators corresponding to the parent-child relationship of each node, and are described in an artificial language that is subject to proof checking. An inspection object storage unit for storing inspection object information, which is information,
An inspection unit that performs proof inspection on the inspection object information;
A consistency inspection apparatus comprising: an inspection result output unit that outputs a result of a certification inspection by the inspection unit.
前記検査対象情報は、当該検査対象情報に含まれる各項の定義を含むモデル情報と、当該検査対象情報に対応する有向非巡回グラフの構造を示す議論構造情報とを有する、請求項1記載の整合性検査装置。 The inspection object information includes model information including definitions of each term included in the inspection object information, and discussion structure information indicating a structure of a directed acyclic graph corresponding to the inspection object information. Consistency checker. 前記検査対象情報に対応する有向非巡回グラフの各ノードと、ノード間の親子関係とを示す情報であり、整合性の検査対象であるケースの情報であるグラフ情報が記憶されるグラフ記憶部と、
前記グラフ情報の各ノードの親子関係のパターンに応じて、前記グラフ情報の各ノードを項に変換し、各ノードの親子関係を演算子に変換し、変換後の検査対象情報を前記検査対象記憶部に蓄積する翻訳部と、をさらに備えた、請求項1または請求項2記載の整合性検査装置。
A graph storage unit that stores information about each node of the directed acyclic graph corresponding to the inspection target information and a parent-child relationship between the nodes, and stores graph information that is information on a case to be inspected for consistency When,
According to the parent-child relationship pattern of each node of the graph information, each node of the graph information is converted into a term, the parent-child relationship of each node is converted into an operator, and the inspection object information after conversion is stored in the inspection object memory The consistency inspection apparatus according to claim 1, further comprising a translation unit that accumulates in the unit.
前記有向非巡回グラフには、前記整合性の検査対象であるケースに関する文脈情報に対応するコンテキストノードがさらに含まれ、
前記検査対象情報に対応する有向非巡回グラフの各ノードと、ノード間の親子関係とを示す情報であり、整合性の検査対象であるケースの情報であるグラフ情報が記憶されるグラフ記憶部と、
前記検査対象情報を、項と演算子とのパターンに応じて、前記検査対象情報の各項をノードに変換し、各演算子を各ノードの親子関係に変換し、変換後のグラフ情報を前記グラフ記憶部に蓄積する翻訳部と、をさらに備えた、請求項1または請求項2記載の整合性検査装置。
The directed acyclic graph further includes a context node corresponding to context information regarding the case whose consistency is to be checked,
A graph storage unit that stores information about each node of the directed acyclic graph corresponding to the inspection target information and a parent-child relationship between the nodes, and stores graph information that is information on a case to be inspected for consistency When,
The inspection object information is converted into each node of the inspection object information according to a pattern of a term and an operator, each operator is converted into a parent-child relationship of each node, and the converted graph information is converted into the above-described graph information. The consistency inspection apparatus according to claim 1, further comprising a translation unit that accumulates in the graph storage unit.
前記人工言語は、構成的型理論に基づく人工言語である、請求項1から請求項4のいずれか記載の整合性検査装置。 The consistency check device according to any one of claims 1 to 4, wherein the artificial language is an artificial language based on a constructive type theory. 前記検査部による証明検査によって、エラーのないことが検査された前記検査対象情報を実行する実行部をさらに備えた、請求項5記載の整合性検査装置。 The consistency inspection apparatus according to claim 5, further comprising an execution unit that executes the inspection object information that has been inspected for errors by a proof inspection by the inspection unit. 前記実行部は、前記検査対象情報を実行することにより、当該検査対象情報から、整合性の検査対象であるケースの各ノードに応じた項と、各ノードの親子関係に応じた演算子とを陽に記述する形式の検査対象情報を生成する、請求項6記載の整合性検査装置。 The execution unit executes the inspection target information to obtain, from the inspection target information, a term corresponding to each node of the case that is a consistency inspection target and an operator corresponding to the parent-child relationship of each node. The consistency inspection apparatus according to claim 6, wherein the inspection target information is explicitly written. 前記検査対象記憶部では、前記検査対象情報を前記グラフ情報に変換する処理に応じた変換プログラムも記憶され、
前記翻訳部は、前記変換プログラムを実行することによって、前記検査対象情報を前記グラフ情報に変換する、請求項4記載の整合性検査装置。
In the inspection object storage unit, a conversion program corresponding to the process of converting the inspection object information into the graph information is also stored,
The consistency inspection apparatus according to claim 4, wherein the translation unit converts the inspection target information into the graph information by executing the conversion program.
前記検査対象情報と前記変換プログラムとは、構成的型理論に基づく同じ人工言語で記述されている、請求項8記載の整合性検査装置。 9. The consistency checking apparatus according to claim 8, wherein the inspection object information and the conversion program are described in the same artificial language based on a constructive type theory. 前記検査対象情報の項は、メタ変数を含むものであり、
前記人工言語は、対話型証明支援系の人工言語である、請求項1から請求項9のいずれか記載の整合性検査装置。
The item of the inspection object information includes a meta variable,
The consistency check apparatus according to claim 1, wherein the artificial language is an artificial language of an interactive proof support system.
目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとを含む有向非巡回グラフの構造を有する、整合性の検査対象であるケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報であり、証明検査の対象となる人工言語により記述された情報である検査対象情報が記憶される検査対象記憶部と、検査部と、検査結果出力部とを用いて処理される整合性検査方法であって、
前記検査部が、前記検査対象情報に対して証明検査を行う検査ステップと、
前記検査結果出力部が、前記検査ステップにおける証明検査の結果を出力する検査結果出力ステップと、を備えた整合性検査方法。
Having a directed acyclic graph structure including a goal node corresponding to an objective, an evidence node corresponding to a basis for proving the objective, and a strategy node that decomposes one goal node into one or more goal nodes; Cases that are subject to consistency checking are information described using terms corresponding to each node and operators corresponding to the parent-child relationship of each node, and are described in an artificial language that is subject to proof checking. A consistency inspection method that is processed by using an inspection object storage unit in which inspection object information is stored, an inspection unit, and an inspection result output unit,
An inspection step in which the inspection unit performs a proof inspection on the inspection object information;
A consistency inspection method, comprising: an inspection result output step in which the inspection result output unit outputs a result of a certification inspection in the inspection step.
目的に対応するゴールノードと、目的を立証するための根拠に対応するエビデンスノードと、一のゴールノードを一以上のゴールノードに分解するストラテジノードとを含む有向非巡回グラフの構造を有する、整合性の検査対象であるケースが、各ノードに応じた項と、各ノードの親子関係に応じた演算子とを用いて記述された情報であり、証明検査の対象となる人工言語により記述された情報である検査対象情報が記憶される検査対象記憶部にアクセス可能なコンピュータを、
前記検査対象情報に対して証明検査を行う検査部、
前記検査部による証明検査の結果を出力する検査結果出力部として機能させるためのプログラム。
Having a directed acyclic graph structure including a goal node corresponding to an objective, an evidence node corresponding to a basis for proving the objective, and a strategy node that decomposes one goal node into one or more goal nodes; Cases that are subject to consistency checking are information described using terms corresponding to each node and operators corresponding to the parent-child relationship of each node, and are described in an artificial language that is subject to proof checking. A computer accessible to the inspection object storage unit in which the inspection object information is stored,
An inspection unit that performs proof inspection on the inspection object information,
A program for causing an inspection result output unit to output a result of a certification inspection by the inspection unit.
JP2011193452A 2011-09-06 2011-09-06 Consistency inspection device, consistency inspection method, and program Active JP5660503B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011193452A JP5660503B2 (en) 2011-09-06 2011-09-06 Consistency inspection device, consistency inspection method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011193452A JP5660503B2 (en) 2011-09-06 2011-09-06 Consistency inspection device, consistency inspection method, and program

Publications (2)

Publication Number Publication Date
JP2013054616A JP2013054616A (en) 2013-03-21
JP5660503B2 true JP5660503B2 (en) 2015-01-28

Family

ID=48131530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011193452A Active JP5660503B2 (en) 2011-09-06 2011-09-06 Consistency inspection device, consistency inspection method, and program

Country Status (1)

Country Link
JP (1) JP5660503B2 (en)

Also Published As

Publication number Publication date
JP2013054616A (en) 2013-03-21

Similar Documents

Publication Publication Date Title
Misbhauddin et al. UML model refactoring: a systematic literature review
CN108351636B (en) Engineering design tool, system and module
US9612806B2 (en) Verification of computer-executable code generated from a model
US8869103B2 (en) Using intermediate representations to verify computer-executable code generated from a model
AU2008337296B2 (en) Assisting failure mode and effects analysis of a system comprising a plurality of components
Wagner et al. CAGEN: A fast combinatorial test generation tool with support for constraints and higher-index arrays
JP2016520898A (en) Tool compiler
Pereira et al. Web based IOPT Petri net Editor with an extensible plugin architecture to support generic net operations
Mayerhofer et al. A model-driven engineering workbench for CAEX supporting language customization and evolution
Ermel et al. Visual modeling and analysis of EMF model transformations based on triple graph grammars
CN104298603B (en) A kind of inspection method of the correctness of application system version structure
US20100275183A1 (en) Source code auditor with a customized rules builder
JP5660503B2 (en) Consistency inspection device, consistency inspection method, and program
TWI571802B (en) Variable inference system and method for software program
Tröls et al. Timestamp-based consistency checking of collaboratively developed engineering artifacts
JP2007011507A (en) Display method of program tree and program generation system
CN112597011B (en) Operator test case generation and optimization method based on multiple languages
Yusuf et al. An automatic approach to measure and visualize coupling in object-oriented programs
González Calleros et al. Advance human–machine interface automatic evaluation
EP2718821B1 (en) Verification of computer-executable code generated from a model
Dubey et al. Computation platform for automatic analysis of embedded software systems using model based approach
Nödler et al. A flexible framework for quality assurance of software artefacts with applications to Java, UML, and TTCN-3 test specifications
Barashev Translating semantic networks to UML class diagrams
Vuković et al. Semantic-aided automation of interface mapping in enterprise integration with conflict detection
Goldschmidt Towards an infrastructure for domain-specific languages in a multi-domain cloud platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141121

R150 Certificate of patent or registration of utility model

Ref document number: 5660503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250