JP6556091B2 - System specification verification support apparatus and system specification verification support method - Google Patents

System specification verification support apparatus and system specification verification support method Download PDF

Info

Publication number
JP6556091B2
JP6556091B2 JP2016084183A JP2016084183A JP6556091B2 JP 6556091 B2 JP6556091 B2 JP 6556091B2 JP 2016084183 A JP2016084183 A JP 2016084183A JP 2016084183 A JP2016084183 A JP 2016084183A JP 6556091 B2 JP6556091 B2 JP 6556091B2
Authority
JP
Japan
Prior art keywords
counterexample
formal language
description
exclusion
formal
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
JP2016084183A
Other languages
Japanese (ja)
Other versions
JP2017194812A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016084183A priority Critical patent/JP6556091B2/en
Publication of JP2017194812A publication Critical patent/JP2017194812A/en
Application granted granted Critical
Publication of JP6556091B2 publication Critical patent/JP6556091B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、システム仕様の検証を支援する技術に関する。   The present invention relates to a technique for supporting verification of a system specification.

システムの不具合、たとえばソフトウェアシステムの不具合の原因の一つに、設計したソフトウェアの仕様誤りがある。仕様誤りを検出するためには、形式手法による検証が有効である。形式手法によるソフトウェア仕様の検証では、まず数学的意味を持つ形式言語を用いてシステムの動作仕様を示す状態遷移系のモデル、およびそのシステムの動作仕様が満たすべき性質(検証性質)を記述する。そして、形式言語で記述されたモデルの記述(以下、これを形式言語仕様記述と呼ぶ)が、同じく形式言語で記述された性質(以下、検証性質記述と呼ぶ)を満たすかを、数学的手法に基づいて検証する。   One of the causes of a system failure, for example, a software system failure is an error in the specification of the designed software. In order to detect specification errors, verification by a formal method is effective. In the verification of the software specification by the formal method, first, a formal language having a mathematical meaning is used to describe a model of a state transition system indicating the operation specification of the system and a property (verification property) to be satisfied by the operation specification of the system. A mathematical method is used to determine whether the description of the model described in the formal language (hereinafter referred to as formal language specification description) satisfies the property described in the formal language (hereinafter referred to as verification property description). Verify based on

形式手法のうちモデル検査法と呼ばれる種類の手法では、上記検証を機械的に実行できる。そのため、多くのモデル検査法において、検証を自動化するためのツールが開発されている。例えば、形式言語Promelaにて記述した形式言語仕様記述および検証性質記述は、SPINと呼ばれる検証ツールにて自動検証可能である。   Among the formal methods, a method called a model checking method can perform the verification mechanically. For this reason, tools for automating verification have been developed in many model checking methods. For example, a formal language specification description and a verification property description described in the formal language Promela can be automatically verified by a verification tool called SPIN.

モデル検査法における検証ツールは、形式言語仕様記述および検証性質記述を入力として受け付ける。そして検証の結果、上記形式言語仕様記述が上記検証性質記述を満たさないと判明した場合は、検証ツールは、「形式言語仕様は検証性質を違反する」ことを示すメッセージとともに、その性質違反に至るまでの実行系列を出力する。この実行系列は、反例と呼ばれる。検証ツールは、検証対象の形式言語仕様記述を検査する過程において、一つの反例を検出次第、検証を終了してその反例を出力する。検証者は、検証ツールが出力した反例を解読することで、どのような場合に上記性質違反が発生するかを認識できるため、上記反例に基づいてシステム仕様の修正を行える。   The verification tool in the model checking method accepts a formal language specification description and a verification property description as inputs. As a result of verification, if it is found that the formal language specification description does not satisfy the verification property description, the verification tool violates the property with a message indicating that the formal language specification violates the verification property. The execution sequence up to is output. This execution sequence is called a counterexample. In the process of checking the formal language specification description to be verified, the verification tool ends verification and outputs the counterexample as soon as one counterexample is detected. The verifier can recognize in which case the property violation occurs by decoding the counterexample output by the verification tool, so that the system specification can be corrected based on the counterexample.

ところで、形式言語は実際のシステムの振る舞いを抽象的かつ模式的に表現可能であることから、形式言語仕様記述の表すシステム仕様が、実際のシステムの振る舞いを忠実に表していない場合がある。その場合、実際のシステムでは起こり得ない実行系列が、反例として出力される場合がある。そのような反例は、偽反例と呼ばれる。   By the way, since the formal language can express the behavior of the actual system abstractly and schematically, the system specification represented by the formal language specification description may not faithfully represent the behavior of the actual system. In this case, an execution sequence that cannot occur in an actual system may be output as a counter example. Such a counterexample is called a false counterexample.

上記偽反例の存在を考慮すると、検証者は反例が出力された場合に、まずその反例が偽反例か否かを判断する必要がある。そして、出力された反例は偽反例ではない反例(以下、正反例と呼ぶ)と判断した場合は、ソフトウェア仕様の修正を行う。逆に、出力された反例は偽反例と判断した場合には、実際のシステムの振る舞いと一致するように形式言語仕様記述を適切に詳細化することで、上記偽反例が反例として出力されないようにする必要がある。形式言語仕様記述を適切に詳細化できた場合は、再検証の結果、上記偽反例とは異なる反例が出力されるか、あるいは「形式言語仕様は検証性質を満たす」ことを示すメッセージが出力される。   Considering the existence of the false counterexample, when the verifier is output, it is necessary to first determine whether the counterexample is a false counterexample. If it is determined that the output counterexample is a counterexample that is not a false counterexample (hereinafter referred to as a counterexample), the software specification is corrected. Conversely, if the output counterexample is determined to be a false counterexample, the formal language specification description is appropriately refined so that it matches the actual system behavior so that the above counterexample is not output as a counterexample. There is a need to. If the formal language specification description can be refined appropriately, the reverification results in a counterexample different from the false counterexample above or a message indicating that the formal language specification satisfies the verification property The

このように検証の結果、偽反例が出力された場合には、当該偽反例が出力されないように適切に形式言語仕様記述を詳細化する必要がある。しかし、偽反例の内容に基づく形式言語仕様記述の詳細化は、人手によって行う必要があるため、大量の偽反例を含む形式言語仕様記述を対象とした場合、多くの手間と時間がかかるという問題がある。この問題に対処するため、特許文献1では、人手で形式言語仕様記述を詳細化せずに偽反例を除外するための方法を開示している。この方法によれば、出力された偽反例に基づいて検証性質を修正する装置を提供することで、人手で形式言語仕様記述を修正せずとも、偽反例を除外できるようになる。   As described above, when a false counterexample is output as a result of the verification, it is necessary to appropriately detail the formal language specification description so that the false counterexample is not output. However, it is necessary to manually refine the formal language specification description based on the contents of the counterfeit example, so when the formal language specification description including a large number of false counterexamples is targeted, it takes a lot of work and time. There is. In order to cope with this problem, Patent Document 1 discloses a method for excluding false counterexamples without manually refining the formal language specification description. According to this method, by providing a device for correcting the verification property based on the output counterfeit example, the counterfeit example can be excluded without manually correcting the formal language specification description.

特開2010−128513号公報JP 2010-128513 A

しかしながら、上記特許文献1に開示の方法では、ある条件が常に成立し続ける、あるいは常に成立しないという特定の性質を持つ偽反例のみを除外できる。詳細には、「異常状態(到達してはいけない状態)に到達するための条件が常に成立する偽反例」、および「正常状態(到達すべき状態)に到達するための条件が全く成立しない偽反例」のみを除外できる。即ち、特許文献1に開示の方法では、上記以外の偽反例は除外できないという課題がある。実際のシステムの仕様では、これら以外の偽反例も多く存在する。また偽反例の内容は、検証対象のシステムの仕様やユーザ(システム設計者)のニーズによって異なるため、特許文献1に開示の方法では、多くの場合において(上記以外の偽反例が出力された場合)、人手での形式言語仕様記述の詳細化が必要になる。   However, the method disclosed in Patent Document 1 can exclude only false counterexamples having a specific property that a certain condition always holds or does not always hold. Specifically, “a false counter example in which a condition for reaching an abnormal state (a state that should not be reached) is always satisfied” and “a false for which a condition for reaching a normal state (a state to be reached) is not satisfied at all” Only counter-examples can be excluded. That is, the method disclosed in Patent Document 1 has a problem that false examples other than the above cannot be excluded. There are many false examples other than these in the actual system specifications. In addition, since the contents of the counterfeit examples differ depending on the specifications of the system to be verified and the needs of the user (system designer), the method disclosed in Patent Document 1 is often used (when a counterexample other than the above is output). ) It is necessary to refine the formal language specification description manually.

開示するシステム仕様検証支援装置は、システムの動作仕様を記述した1以上の形式言語文から成る形式言語仕様記述の更新処理を行う、形式言語仕様記述更新部と、検証性質を形式言語で記述した検証性質記述の更新処理を行う検証性質更新部とを有する。形式言語仕様記述更新部は、ユーザから与えられた除外反例に基づいて、形式言語仕様記述の実行過程において、除外反例に含まれる形式言語文が実行された時に、その旨を時系列で記録するための処理を形式言語で記述したトレース挿入用記述を作成し、トレース挿入用記述を前記形式言語仕様記述に挿入することで形式言語仕様記述を更新する。また検証性質更新部は、トレース挿入用記述及び除外反例を用いて、検証性質記述を「前記検証性質が成立しなければ、前記除外反例の示す順序で前記形式言語仕様記述を構成する前記形式言語文が実行された」という性質の記述に書き換える。   The disclosed system specification verification support apparatus describes a formal language specification description update unit that performs a process of updating a formal language specification description including one or more formal language statements describing system operation specifications, and describes verification properties in the formal language. A verification property update unit that performs a process of updating the verification property description. The formal language specification description update unit records, in a time series, when a formal language sentence included in the exclusion counterexample is executed in the formal language specification description execution process based on the exclusion counterexample given by the user. The trace language description is updated by creating a trace insertion description in which the processing for this is described in the formal language, and inserting the trace insertion description into the formal language specification description. Further, the verification property update unit uses the trace insertion description and the exclusion counterexample to determine the verification property description as “the formal language that constitutes the formal language specification description in the order indicated by the exclusion counterexample if the verification property does not hold. Rewrite the description with the property that the statement was executed.

開示する偽反例除外支援装置によれば、任意の偽反例を除外できるようになるため、システム仕様の検証における人手での作業量を削減し、システム仕様の不具合検出にかかる作業時間および作業工数を削減することができる。   According to the disclosed false counterexample exclusion support device, it becomes possible to exclude arbitrary false counterexamples. Therefore, the amount of manual work in verifying the system specifications is reduced, and the work time and work man-hours required to detect system specification defects are reduced. Can be reduced.

実施例1に係る偽反例除外支援装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the counterfeit example exclusion assistance apparatus which concerns on Example 1. FIG. 偽反例除外支援装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of a counterfeit example exclusion assistance apparatus. 形式言語仕様記述とその検証性質記述の例である。It is an example of formal language specification description and its verification property description. 言語間対応関係保持部が保持する言語間対応関係の例である。It is an example of the correspondence relationship between languages hold | maintained by the correspondence relationship holding part between languages. 自然言語文挿入部によって自然言語文を反例に出力するように形式言語仕様記述を更新した結果の例である。It is an example of a result of updating a formal language specification description so that a natural language sentence insertion unit outputs a natural language sentence as a counterexample. 自然言語文挿入部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of the natural language sentence insertion part. 自然言語文挿入部における自然言語文挿入画面の例である。It is an example of the natural language sentence insertion screen in a natural language sentence insertion part. 検証部が出力し、反例保持部に保持する反例の例である。It is an example of the counter example which a verification part outputs and hold | maintains at a counter example holding part. 除外反例作成部が作成する除外反例である。It is the exclusion counterexample which an exclusion counterexample preparation part produces. 除外反例作成部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of an exclusion counterexample preparation part. 除外反例作成部における除外反例作成画面の例である。It is an example of the exclusion counterexample creation screen in an exclusion counterexample preparation part. 除外反例に基づき、形式言語仕様記述更新部が更新した形式言語仕様記述の例である。It is an example of a formal language specification description updated by a formal language specification description updating unit based on a counterexample of exclusion. 形式言語仕様記述更新部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of a formal language specification description update part. 除外反例に基づき、検証性質更新部が更新した検証性質記述の例である。It is an example of the verification property description updated by the verification property update unit based on the exclusion counterexample. 検証性質更新部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of a verification property update part. 実施例2に係る偽反例除外支援装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the counterfeit example exclusion assistance apparatus which concerns on Example 2. FIG. 自然言語反例作成部が作成する自然言語反例の例である。It is an example of the natural language counterexample which a natural language counterexample preparation part produces. 自然言語反例作成部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of the natural language counterexample preparation part. 自然言語反例向け除外反例作成部の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of the exclusion counterexample preparation part for natural language counterexamples. 自然言語反例向け除外反例作成部における自然言語反例の編集画面の例である。It is an example of the edit screen of the natural language counterexample in the exclusion counterexample preparation part for natural language counterexamples.

以下、本発明のいくつかの実施形態について、図面を参照しながら説明する。   Several embodiments of the present invention will be described below with reference to the drawings.

図1は、実施例1におけるシステム仕様検証支援装置(偽反例除外支援装置)201の構成例を示すブロック図である。   FIG. 1 is a block diagram illustrating a configuration example of a system specification verification support apparatus (false counterexample exclusion support apparatus) 201 according to the first embodiment.

偽反例除外支援装置201は、編集部101、自然言語文挿入部104、検証部106、除外反例作成部110、形式言語仕様記述更新部112、及び検証性質更新部113、の機能ブロックを含む。また偽反例除外支援装置201は、検証性質保持部102、形式言語仕様記述保持部103、言語間対応関係保持部105、反例保持部107、除外反例保持部111、の記憶部を有する。偽反例除外支援装置201は、CPU、メモリ、入出力装置を有するコンピュータ上で実現される。上記各処理部は、CPUによって処理が実行され、各保持部はメモリに設けられる。   The false counterexample exclusion support apparatus 201 includes functional blocks of an editing unit 101, a natural language sentence insertion unit 104, a verification unit 106, an exclusion counterexample creation unit 110, a formal language specification description update unit 112, and a verification property update unit 113. The counterfeit example exclusion support apparatus 201 includes a storage unit including a verification property holding unit 102, a formal language specification description holding unit 103, an inter-language correspondence holding unit 105, a counterexample holding unit 107, and an exclusion counterexample holding unit 111. The counterfeit example exclusion support apparatus 201 is realized on a computer having a CPU, a memory, and an input / output device. Each processing unit is processed by the CPU, and each holding unit is provided in a memory.

編集部101は、ユーザからの入力に従って、形式言語仕様記述及び検証性質記述を編集し、編集された形式言語仕様記述を形式言語仕様記述保持部103に格納し、また編集された検証性質記述を検証性質保持部102に格納する。編集部101はたとえば、公知の計算機上で稼働するテキストエディタでもよい。   The editing unit 101 edits the formal language specification description and the verification property description according to the input from the user, stores the edited formal language specification description in the formal language specification description holding unit 103, and also displays the edited verification property description. It is stored in the verification property holding unit 102. The editing unit 101 may be, for example, a text editor that operates on a known computer.

自然言語文挿入部104は、形式言語仕様記述保持部103に保持している形式言語仕様記述について、上記形式言語仕様記述を構成する任意の形式言語文に対して、その意味を説明する自然言語文の入力を受け付ける。そして自然言語文挿入部104は、入力された自然言語文を反例に出力するように上記形式言語仕様記述を更新する。その際自然言語文挿入部104は、上記形式言語文と上記自然言語文との対応関係を、言語間対応関係保持部105に登録する。   The natural language sentence insertion unit 104 explains the meaning of the formal language specification description held in the formal language specification description holding unit 103 with respect to an arbitrary formal language sentence constituting the formal language specification description. Accept sentence input. The natural language sentence insertion unit 104 updates the formal language specification description so that the input natural language sentence is output as a counterexample. At that time, the natural language sentence insertion unit 104 registers the correspondence relationship between the formal language sentence and the natural language sentence in the inter-language correspondence holding unit 105.

検証部106は、形式言語仕様記述保持部103に保持している形式言語仕様記述、および検証性質保持部102に保持している検証性質記述を取得し、モデル検査法による検証を実行する。検証の結果、上記形式言語仕様記述が上記検証性質記述の示す性質を満たさないことが判明した場合は、検証部106は反例を出力しその反例を反例保持部107に登録する。検証部106は一例として、SPINなどの公知のモデル検査ツールである。   The verification unit 106 acquires the formal language specification description held in the formal language specification description holding unit 103 and the verification property description held in the verification property holding unit 102, and executes verification by the model checking method. As a result of verification, if it is found that the formal language specification description does not satisfy the property indicated by the verification property description, the verification unit 106 outputs a counterexample and registers the counterexample in the counterexample holding unit 107. The verification unit 106 is, for example, a known model checking tool such as SPIN.

除外反例作成部110は、反例保持部107に保持している反例を取得し、上記反例を構成する形式言語文の選択をユーザから受け付けることで、選択された形式言語文およびその行番号から構成される除外反例を作成する。さらに除外反例作成部110は、上記除外反例に対する編集をユーザから受け付けることで、上記除外反例を構成する形式言語文の任意の組合せによる別の除外反例を作成する。その際ユーザは、記号“*”を用いることで、形式言語文の任意回数の繰り返しを記述することもできる。除外反例作成部110は作成した除外反例を、除外反例保持部111に登録する。   The exclusion counterexample creation unit 110 acquires the counterexample stored in the counterexample storage unit 107, and accepts the selection of the formal language sentence constituting the counterexample from the user, and is configured from the selected formal language sentence and its line number. Create a counterexample to be excluded. Furthermore, the exclusion counterexample creation unit 110 receives another editing from the exclusion counterexample from the user, thereby generating another exclusion counterexample by an arbitrary combination of formal language sentences constituting the exclusion counterexample. At that time, the user can describe an arbitrary number of repetitions of the formal language sentence by using the symbol “*”. The exclusion counterexample creation unit 110 registers the created exclusion counterexample in the exclusion counterexample holding unit 111.

形式言語仕様記述更新部112は、除外反例保持部111に保持している除外反例を取得し、上記除外反例に基づいて形式言語仕様記述保持部103に保持している形式言語仕様記述を更新する。具体的には形式言語仕様記述更新部112は、上記除外反例を構成する形式言語文の実行を記録するためのトレース配列の定義と、上記形式言語文を実行した場合に上記トレース配列に上記形式言語文を表す定数を代入するトレース情報作成処理を、上記形式言語仕様記述に挿入する。   The formal language specification description update unit 112 acquires an exclusion counterexample held in the exclusion counterexample holding unit 111, and updates the formal language specification description held in the formal language specification description holding unit 103 based on the exclusion counterexample. . Specifically, the formal language specification description updating unit 112 defines the trace array for recording the execution of the formal language sentence that constitutes the exclusion counterexample, and the format is added to the trace array when the formal language sentence is executed. A trace information creation process for substituting a constant representing a language sentence is inserted into the formal language specification description.

検証性質更新部113は、除外反例保持部111に保持している除外反例を取得し、上記形式言語仕様記述に挿入した上記トレース配列が、上記除外反例の示す順序で上記形式言語文を表す定数を保持しているかを判定するためのトレース判定式を作成する。そして検証性質更新部113は、検証性質保持部102に保持している検証性質記述を、「上記検証性質が成立しなければ、その実行系列においてトレース判定式が成立する」という性質の記述に置き換える。   The verification property update unit 113 acquires an exclusion counterexample stored in the exclusion counterexample storage unit 111, and the trace array inserted in the formal language specification description represents the formal language sentence in the order indicated by the exclusion counterexample. Create a trace judgment formula to judge whether or not Then, the verification property update unit 113 replaces the verification property description held in the verification property storage unit 102 with a description of a property that “a trace judgment expression is satisfied in the execution sequence if the verification property is not satisfied”. .

図2は、図1に示した偽反例除外支援装置を実現するハードウェア構成の例を示す図である。偽反例除外支援装置201は一例として、パーソナルコンピュータ(PC)等の汎用的な計算機で、CPU202、メモリ203、補助記憶装置204、表示装置205、入力装置206、及び外部媒体入出力装置207を備える。   FIG. 2 is a diagram illustrating an example of a hardware configuration that implements the counterfeit example exclusion support device illustrated in FIG. 1. The counterfeit example exclusion support apparatus 201 is a general-purpose computer such as a personal computer (PC), for example, and includes a CPU 202, a memory 203, an auxiliary storage device 204, a display device 205, an input device 206, and an external medium input / output device 207. .

CPU202は、メモリ203に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ203は、CPU202のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。具体的にはメモリ203には、CPU202に実行されることによって偽反例除外支援装置201を、編集部101、自然言語文挿入部104、検証部106、除外反例作成部110、形式言語仕様記述更新部112、及び検証性質更新部113、の機能ブロックを備えた装置として動作させるためのプログラム、及びこのプログラムの実行に必要なデータが記憶される。   The CPU 202 executes various processes by executing programs stored in the memory 203. The memory 203 functions as a work area for the CPU 202 and stores programs and data necessary for executing the programs. Specifically, in the memory 203, the counterfeit example exclusion support apparatus 201 is executed by the CPU 202, and the editing unit 101, natural language sentence insertion unit 104, verification unit 106, exclusion counterexample creation unit 110, formal language specification description update The program for operating as a device provided with the functional blocks of the unit 112 and the verification property updating unit 113, and data necessary for executing the program are stored.

なお、以下では、偽反例除外支援装置201で実行される各種処理の内容を説明する際、除外反例作成部110等の機能ブロックを処理の主体として説明することがある。先に述べたとおり、除外反例作成部110等は、プログラムがCPU202に実行されることによって実現されたものである。そのため以下の説明において、機能ブロックを主語にして記述されている処理は、実際にはCPU202がその処理を行うことを意味する。ただし説明が冗長になることを避けるため、本実施例では、機能ブロックを処理の主体として、各種処理の内容を説明する。   In the following, when the contents of various processes executed by the counterfeit example exclusion support apparatus 201 are described, functional blocks such as the exclusion counterexample creation unit 110 may be described as the processing subject. As described above, the exclusion counterexample creation unit 110 and the like are realized by the CPU 202 executing a program. Therefore, in the following description, the processing described with the functional block as the subject means that the CPU 202 actually performs the processing. However, in order to avoid redundant description, in the present embodiment, the contents of various processes will be described with the functional block as the subject of the process.

また、偽反例除外支援装置201で実行されるプログラム(偽反例除外支援装置201を、上で述べた各機能ブロックを有する装置として動作させるためのプログラム)は、プログラム配布サーバや記憶メディアを介して提供され、プログラムを実行する装置にインストールされてもよい。なお、ここでの記憶メディアとは、データを非一時的に記憶するコンピュータ可読媒体を意味し、例えばICカード、SDカード、DVD等の不揮発性記憶媒体である。   A program executed by the counterfeit example exclusion support apparatus 201 (a program for operating the counterfeit example exclusion support apparatus 201 as an apparatus having the above-described functional blocks) is transmitted via a program distribution server or a storage medium. It may be provided and installed on a device that executes the program. Here, the storage medium means a computer-readable medium for storing data non-temporarily, and is a non-volatile storage medium such as an IC card, an SD card, a DVD or the like.

補助記憶装置204は、各種データを格納する。補助記憶装置204は例えば、ハードディスク装置などの不揮発性記憶媒体を用いた記憶装置である。上で述べた、検証性質保持部102、形式言語仕様記述保持部103、言語間対応関係保持部105、反例保持部107、および除外反例保持部111は、補助記憶装置204の有する記憶領域により構成される。   The auxiliary storage device 204 stores various data. The auxiliary storage device 204 is a storage device using a nonvolatile storage medium such as a hard disk device. The verification property holding unit 102, the formal language specification description holding unit 103, the inter-language correspondence holding unit 105, the counterexample holding unit 107, and the exclusion counterexample holding unit 111 described above are configured by storage areas of the auxiliary storage device 204. Is done.

そのため、本実施例の説明において、たとえば「反例保持部107に情報を格納する」という記述がある箇所は、実際には反例保持部107を構成する補助記憶装置204の記憶領域に情報が格納されることを意味する。また、検証性質保持部102、形式言語仕様記述保持部103、言語間対応関係保持部105、および除外反例保持部111について、上と同様な記述がなされている場合にも同様に、補助記憶装置204の記憶領域に情報が格納されることを意味する。   Therefore, in the description of the present embodiment, for example, where there is a description “store information in the counterexample holding unit 107”, information is actually stored in the storage area of the auxiliary storage device 204 constituting the counterexample holding unit 107. Means that. Similarly, when the verification property holding unit 102, the formal language specification description holding unit 103, the inter-language correspondence holding unit 105, and the exclusion counterexample holding unit 111 are described in the same manner as described above, the auxiliary storage device This means that information is stored in the storage area 204.

また別の実施形態として、検証性質保持部102、形式言語仕様記述保持部103、言語間対応関係保持部105、反例保持部107、および除外反例保持部111は、メモリ203の記憶領域を用いて構成されてもよい。   As another embodiment, the verification property holding unit 102, the formal language specification description holding unit 103, the inter-language correspondence holding unit 105, the counterexample holding unit 107, and the excluded counterexample holding unit 111 use the storage area of the memory 203. It may be configured.

あるいは、編集部101、自然言語文挿入部104、検証部106、反例保持部107、除外反例作成部110、形式言語仕様記述更新部112、及び検証性質更新部113を構成するプログラムの少なくとも一部についても、補助記憶装置204に格納されても良い。その場合、各種処理実行の際には、CPU202が補助記憶装置204に格納されたプログラムをメモリ203へ読み出して、プログラムを実行する。また各プログラムは、あらかじめ、メモリ203または補助記憶装置204に格納されていても良いし、必要に応じ、利用可能な媒体を介して、他の装置からメモリ203または補助記憶装置204に導入されてもよい。媒体とは、例えば、外部媒体入出力装置207に着脱可能な記憶媒体、または、ネットワークや、ネットワークを伝搬する搬送波やデジタル信号などの通信媒体を指す。   Alternatively, at least a part of programs constituting the editing unit 101, the natural language sentence insertion unit 104, the verification unit 106, the counterexample holding unit 107, the exclusion counterexample creation unit 110, the formal language specification description update unit 112, and the verification property update unit 113 May also be stored in the auxiliary storage device 204. In this case, when executing various processes, the CPU 202 reads out the program stored in the auxiliary storage device 204 to the memory 203 and executes the program. Each program may be stored in the memory 203 or the auxiliary storage device 204 in advance, or may be introduced from another device to the memory 203 or the auxiliary storage device 204 via an available medium as necessary. Also good. The medium refers to, for example, a storage medium that can be attached to and detached from the external medium input / output device 207, or a communication medium such as a network, a carrier wave that propagates through the network, and a digital signal.

表示装置205は、プログラムの処理結果などを表示する。表示装置205は、例えば、ディスプレイなどである。入力装置206は、処理の実行指示及び処理に必要な情報の入力などを利用者から受け付ける。入力装置206は、例えば、キーボード及びマウスなどである。   The display device 205 displays the processing result of the program. The display device 205 is, for example, a display. The input device 206 receives a process execution instruction and input of information necessary for the process from the user. The input device 206 is, for example, a keyboard and a mouse.

外部媒体入出力装置207は、外部媒体に格納されているデータなどの入出力を行う。外部媒体は、外部媒体入出力装置207に着脱可能で可搬性のある記憶媒体であり、外部媒体入出力装置207は、外部媒体に読み書き可能なドライブ装置などである。なお、図2に示したハードウェア構成は一例であり、偽反例除外支援装置201は上で説明した以外の構成物を備えていてもよい。たとえば偽反例除外支援装置201はネットワークインタフェースを有し、ネットワークインタフェースを介して、外部機器から必要な情報を偽反例除外支援装置201に入力するように構成されていてもよい。また、偽反例除外支援装置201は必ずしも単一の計算機でなくてもよい。ネットワークで相互接続された複数台の計算機から、偽反例除外支援装置201が構成されていてもよい。   The external medium input / output device 207 inputs / outputs data stored in the external medium. The external medium is a portable storage medium that can be attached to and detached from the external medium input / output device 207, and the external medium input / output device 207 is a drive device that can read from and write to the external medium. Note that the hardware configuration shown in FIG. 2 is an example, and the counterfeit example exclusion support apparatus 201 may include components other than those described above. For example, the counterfeit example exclusion support apparatus 201 may have a network interface, and may be configured to input necessary information from an external device to the counterfeit example exclusion support apparatus 201 via the network interface. Further, the false counterexample exclusion support apparatus 201 is not necessarily a single computer. The counterfeit example exclusion support apparatus 201 may be configured from a plurality of computers interconnected by a network.

図3は、形式言語仕様記述とその検証性質記述の例である。本実施例の説明では一例として、形式言語仕様記述と検証性質記述が、公知の形式言語であるPromelaの構文規則に従って記述されている例を説明する。また本実施例では、検証ツールの一種であるSPINを用いて形式言語仕様記述の検証が行われる例を説明する。そのため本実施例では、形式言語仕様記述301及び検証性質記述302に記述されている、個々の内容の説明は略す。   FIG. 3 is an example of a formal language specification description and its verification property description. In the description of the present embodiment, as an example, an example in which the formal language specification description and the verification property description are described in accordance with the syntax rules of Promela, which is a well-known formal language, will be described. In this embodiment, an example in which formal language specification description is verified using SPIN, which is a kind of verification tool, will be described. For this reason, in this embodiment, the description of the individual contents described in the formal language specification description 301 and the verification property description 302 is omitted.

形式言語仕様記述301は、編集部101により入力装置206および表示装置205を介して編集され、形式言語仕様記述保持部103に保持される。同様に検証性質記述302は、編集部101により入力装置206および表示装置205を介して編集され、検証性質保持部102に保持される。また別の実施形態として、形式言語仕様記述301と検証性質記述302のうち少なくとも一方が、外部媒体入出力装置207あるいはネットワークを介して偽反例除外支援装置201に入力され、形式言語仕様記述保持部103や検証性質保持部102に格納されてもよい。つまり、形式言語仕様記述301と検証性質記述302は必ずしも、偽反例除外支援装置201内で作成(編集)されたものでなくても良い。   The formal language specification description 301 is edited by the editing unit 101 via the input device 206 and the display device 205 and held in the formal language specification description holding unit 103. Similarly, the verification property description 302 is edited by the editing unit 101 via the input device 206 and the display device 205 and held in the verification property holding unit 102. As another embodiment, at least one of the formal language specification description 301 and the verification property description 302 is input to the counterfeit example exclusion support device 201 via the external medium input / output device 207 or the network, and the formal language specification description holding unit 103 or the verification property holding unit 102. In other words, the formal language specification description 301 and the verification property description 302 are not necessarily created (edited) in the counterfeit example exclusion support apparatus 201.

図4は、言語間対応関係保持部105が保持する言語間対応関係の例である。   FIG. 4 is an example of the correspondence relationship between languages held by the correspondence relationship holding unit 105 between languages.

言語間対応関係401は、形式言語仕様記述の行番号402、形式言語文403、および自然言語文404を含む。形式言語文403を説明する自然言語記述として自然言語文404が定義されていることを示している。形式言語仕様記述において、同一の形式言語文が複数回現れる可能性があるため、形式言語仕様記述の行番号402にて形式言語文403を特定している。本実施例の説明においては、形式言語仕様記述内の同一行に、同一の形式言語文が複数回出現しない場合の例を説明する。ただし、同一の行に、同一の形式言語文が複数回現れる形式言語仕様記述が取り扱われる場合は、行頭からの文字数などを言語間対応関係401に追加することで、形式言語文403の示す形式言語文を一意に識別できるようになる。   The inter-language correspondence 401 includes a line number 402 of a formal language specification description, a formal language sentence 403, and a natural language sentence 404. It shows that a natural language sentence 404 is defined as a natural language description explaining the formal language sentence 403. In the formal language specification description, there is a possibility that the same formal language sentence may appear multiple times. Therefore, the formal language sentence 403 is specified by the line number 402 of the formal language specification description. In the description of the present embodiment, an example will be described in which the same formal language sentence does not appear multiple times on the same line in the formal language specification description. However, when a formal language specification description in which the same formal language sentence appears multiple times on the same line is handled, the format indicated by the formal language sentence 403 is added to the inter-language correspondence 401 by adding the number of characters from the beginning of the line. Language sentences can be uniquely identified.

図5は、自然言語文挿入部104が、自然言語文を反例に出力するように形式言語仕様記述301を更新した結果の例である。   FIG. 5 shows an example of a result of the natural language sentence insertion unit 104 updating the formal language specification description 301 so as to output the natural language sentence as a counterexample.

記述501〜505は、それぞれ自然言語文を反例に出力するために、自然言語文挿入部104によって挿入された形式言語の記述である。例えば記述501は、形式言語文303(x = 3)に対応する自然言語文“初期化”を反例に出力するために挿入された記述である。また自然言語文“初期化”の前には、自然言語文の接頭辞として定義した文字列“TRACE”が挿入されている。この接頭辞は、実施例2で説明する自然言語反例作成部108が自然言語反例を作成する際に、反例から自然言語文を抽出するための文字列検索キーワードとして使用する。本実施例では接頭辞に“TRACE”が用いられる例を説明するが、別の文字列が使用されてもよい。また図5の例では、形式言語文303と記述501とがatomic節と呼ばれる節内に括られている。これにより、形式言語文303と記述501は必ず連続して実行されるため、反例においても形式言語文303と記述501は連続して現れる。   Descriptions 501 to 505 are formal language descriptions inserted by the natural language sentence insertion unit 104 in order to output natural language sentences as counter examples. For example, the description 501 is a description inserted to output a natural language sentence “initialization” corresponding to the formal language sentence 303 (x = 3) as a counter example. Further, before the natural language sentence “initialization”, a character string “TRACE” defined as a prefix of the natural language sentence is inserted. This prefix is used as a character string search keyword for extracting a natural language sentence from a counterexample when the natural language counterexample creation unit 108 described in the second embodiment creates a natural language counterexample. In this embodiment, an example in which “TRACE” is used as a prefix will be described, but another character string may be used. In the example of FIG. 5, the formal language sentence 303 and the description 501 are enclosed in a section called an atomic section. As a result, the formal language sentence 303 and the description 501 are always executed continuously, and therefore, the formal language sentence 303 and the description 501 appear continuously even in the counter example.

図6は、自然言語文挿入部104の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 6 is a flowchart illustrating an exemplary procedure of the natural language sentence insertion unit 104. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

自然言語文挿入部104は、形式言語仕様記述保持部103から形式言語仕様記述を取得し、画面に表示する。そして自然言語文挿入部104は、上記形式言語仕様記述を構成する文に対するユーザからの選択入力を受け付ける(ステップ601)   The natural language sentence insertion unit 104 acquires the formal language specification description from the formal language specification description holding unit 103 and displays it on the screen. Then, the natural language sentence insertion unit 104 receives a selection input from the user for the sentence constituting the formal language specification description (step 601).

続いて自然言語文挿入部104は、ステップ601にて選択された形式言語文を説明する自然言語文の入力をユーザから受け付ける(ステップ602)。   Subsequently, the natural language sentence insertion unit 104 receives an input of a natural language sentence describing the formal language sentence selected in Step 601 from the user (Step 602).

自然言語文挿入部104は、上記形式言語文の直後に、上記自然言語文を反例に出力するための記述を挿入する。さらに上記形式言語文と上記自然言語文をatomic節にて括り、挿入された記述内容を形式言語仕様記述保持部103内の形式言語仕様記述に反映する(ステップ603)。例えば、ステップ601にて形式言語文303が選択され、ステップ602ではその対応する自然言語文として“初期化”が入力されたとする。その場合、自然言語文挿入部104は、記述501を作成し、形式言語文303の直後に挿入する。さらに自然言語文挿入部104は、形式言語文303と記述501をatomic節にて括る。   The natural language sentence insertion unit 104 inserts a description for outputting the natural language sentence as a counter example immediately after the formal language sentence. Further, the formal language sentence and the natural language sentence are enclosed in an atomic section, and the inserted description content is reflected in the formal language specification description in the formal language specification description holding unit 103 (step 603). For example, it is assumed that the formal language sentence 303 is selected in step 601 and “initialization” is input as the corresponding natural language sentence in step 602. In that case, the natural language sentence insertion unit 104 creates a description 501 and inserts it immediately after the formal language sentence 303. Further, the natural language sentence insertion unit 104 bundles the formal language sentence 303 and the description 501 in an atomic section.

自然言語文挿入部104は、上記形式言語文とその行番号、および上記自然言語文を、言語間対応関係として言語間対応関係保持部105に登録する(ステップ604)。例えばステップ603と同様に、ステップ601にて形式言語文303が選択され、ステップ602ではその対応する自然言語文として“初期化”が入力されたとする。その場合、自然言語文挿入部104は言語間対応関係401の1行目に示す情報を作成し、言語間対応関係保持部105に登録する。   The natural language sentence insertion unit 104 registers the formal language sentence, its line number, and the natural language sentence in the interlanguage correspondence holding unit 105 as an interlanguage correspondence (step 604). For example, as in step 603, it is assumed that the formal language sentence 303 is selected in step 601 and "initialization" is input as the corresponding natural language sentence in step 602. In this case, the natural language sentence insertion unit 104 creates information shown in the first line of the interlanguage correspondence 401 and registers it in the interlanguage correspondence holding unit 105.

図7は、自然言語文挿入部104における自然言語文挿入画面の例である。   FIG. 7 is an example of a natural language sentence insertion screen in the natural language sentence insertion unit 104.

自然言語文挿入画面1706は、形式言語仕様記述を表示する形式言語仕様記述表示部1701、形式言語仕様記述において選択中の行を表示する選択行表示部1702、選択中の行における形式言語文を表示する形式言語文表示部1703、自然言語文の入力を受け付ける自然言語文入力受付部1704、および上記自然言語文を反例に出力するための記述を、上記形式言語仕様記述に挿入するための挿入ボタン1705を含む。   The natural language sentence insertion screen 1706 includes a formal language specification description display section 1701 for displaying a formal language specification description, a selected line display section 1702 for displaying a selected line in the formal language specification description, and a formal language sentence in the selected line. A formal language sentence display unit 1703 to display, a natural language sentence input reception unit 1704 that accepts an input of a natural language sentence, and an insertion for inserting a description for outputting the natural language sentence as a counterexample into the formal language specification description Button 1705 is included.

形式言語仕様記述表示部1701において、ユーザから形式言語文の選択入力を受け付けると、自然言語文挿入部104は選択された行の番号と、その行における形式言語文を、それぞれ選択行表示部1702および形式言語文表示部1703に表示する(ステップ601)。そして自然言語文挿入部104は、自然言語文入力受付部1704にて自然言語文の入力を受け付ける(ステップ602)。その後ユーザが挿入ボタン1705を押下すると、自然言語文挿入部104は上記選択された行に、上記自然言語文を反例に出力するための記述を挿入し、さらに言語間対応関係401に記録すべき情報を作成して、言語間対応関係保持部105に格納する(ステップ603,604)。   When the formal language specification description display unit 1701 accepts a selection input of a formal language sentence from the user, the natural language sentence insertion unit 104 selects the number of the selected line and the formal language sentence in the selected line, respectively. And displayed on the formal language sentence display unit 1703 (step 601). The natural language sentence insertion unit 104 receives an input of a natural language sentence at the natural language sentence input reception unit 1704 (step 602). Thereafter, when the user presses the insert button 1705, the natural language sentence insertion unit 104 inserts a description for outputting the natural language sentence as a counterexample in the selected line, and should further record it in the interlanguage correspondence 401. Information is created and stored in the inter-language correspondence holding unit 105 (steps 603 and 604).

ユーザは上記の手順を任意回繰り返すことで、形式言語仕様記述を構成する任意の形式言語文に対して、その意味を説明する自然言語文を反例に出力するようにする。その後ユーザは、自然言語文の挿入された形式言語仕様記述(及び検証性質記述)を検証部106に与え、検証部106に検証を実行させる。   The user repeats the above procedure as many times as possible so that a natural language sentence explaining the meaning of an arbitrary formal language sentence constituting the formal language specification description is output as a counter example. Thereafter, the user gives the formal language specification description (and the verification property description) in which the natural language sentence is inserted to the verification unit 106, and causes the verification unit 106 to perform verification.

図8は、自然言語文挿入部104によって自然言語文が挿入された形式言語仕様記述について検証部106が検証を行った結果、検証部106によって出力される反例(検証性質を満たさない場合の、形式言語仕様記述の実行系列)の例である。なお検証部106は、出力した反例を反例保持部107に格納する。   FIG. 8 shows a counterexample (when the verification property is not satisfied, when the verification unit 106 verifies the formal language specification description in which the natural language sentence insertion unit 104 has inserted the natural language sentence, as a result of verification. This is an example of an execution sequence of a formal language specification description. The verification unit 106 stores the output counterexample in the counterexample holding unit 107.

反例を構成する文の読み方を説明する。反例を構成する文は、実行系列におけるステップ番号、プロセスIDおよびプロセス名、形式言語仕様記述を保存したファイル名、形式言語仕様記述における行番号、および形式言語文にて構成される。例えば、図8の1行目は、1:proc 0 (p1) file:4 [x = 3]と記述されている。これは、ファイル名“file”の“4”行目に記載された“x = 3”という形式言語文701を、実行系列の第“1”ステップ目に実行したことを意味する。さらに上記“x = 3”という処理は、“proc 0 (p1)”というプロセスの処理であることを意味する。反例に含まれる形式言語文701〜706、および自然言語文707〜712は、後の説明にて参照する。   Explain how to read the sentences that constitute the counterexample. A sentence constituting the counterexample is composed of a step number in the execution sequence, a process ID and a process name, a file name storing the formal language specification description, a line number in the formal language specification description, and a formal language sentence. For example, the first line in FIG. 8 describes “1: proc 0 (p1) file: 4 [x = 3]”. This means that the formal language sentence 701 “x = 3” described in the “4” line of the file name “file” is executed in the “1” step of the execution sequence. Further, the process “x = 3” means that the process is “proc 0 (p1)”. Formal language sentences 701 to 706 and natural language sentences 707 to 712 included in the counterexample will be referred to later.

続いて除外反例の作成処理について説明する。図9は、除外反例作成部110が作成する除外反例の例である。   Next, a process for creating a counter-example for exclusion will be described. FIG. 9 is an example of an exclusion counterexample created by the exclusion counterexample creation unit 110.

除外反例801は少なくとも、形式言語文803と、形式言語仕様記述におけるその形式言語文803の行番号802の組を1以上含む。本実施例では、形式言語文803と、その形式言語文803の形式言語仕様記述内における行番号802の組を、「除外反例文」と呼ぶ。なお、除外反例文は行番号以外の情報を含んでいてもよい。少なくとも除外反例文の形式言語文が、形式言語仕様記述内のどこに存在する文であるか、特定可能な情報が除外反例文に含まれていればよい。たとえば行番号の代わりに、形式言語仕様記述の先頭からのバイトオフセットが、除外反例文に含まれていてもよい。また除外反例文に、形式言語文と行番号以外の情報が含まれていてもよい。   The counter counterexample 801 includes at least one set of a formal language sentence 803 and a line number 802 of the formal language sentence 803 in the formal language specification description. In this embodiment, a set of the formal language sentence 803 and the line number 802 in the formal language specification description of the formal language sentence 803 is referred to as an “exclusion counterexample”. The excluded counterexample sentence may include information other than the line number. It is only necessary that the exclusion counterexample sentence includes information that can specify at least where the formal language sentence of the exclusion example sentence is a sentence in the formal language specification description. For example, a byte offset from the beginning of the formal language specification description may be included in the excluded counterexample sentence instead of the line number. In addition, information other than the formal language sentence and the line number may be included in the excluded counterexample sentence.

除外反例作成部110は、除外反例に対する編集入力をユーザから受け付けることで、上記除外反例を構成する形式言語文の任意の組合せによる別の除外反例を作成する。除外反例804は、除外反例801を編集することで作成された除外反例の例である。同様に除外反例805は、除外反例804を編集することで作成された除外反例の例である。記号806は、形式言語文“x--”の任意回数の繰り返しを意味する。これらの除外反例は、除外反例保持部111に格納される。   The exclusion counterexample creation unit 110 accepts an edit input for the exclusion counterexample from the user, thereby creating another exclusion counterexample by an arbitrary combination of formal language sentences constituting the exclusion counterexample. An exception counterexample 804 is an example of an exception counterexample created by editing an exception counterexample 801. Similarly, an exception counterexample 805 is an example of an exception counterexample created by editing the exception counterexample 804. A symbol 806 means an arbitrary number of repetitions of the formal language sentence “x--”. These exclusion counterexamples are stored in the exclusion counterexample holding unit 111.

図10は、除外反例作成部110の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 10 is a flowchart illustrating an exemplary procedure of the exclusion counterexample creation unit 110. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

除外反例作成部110は、反例保持部107から反例を取得し、上記反例を構成する形式言語文の選択をユーザから受け付ける(ステップ901)。例えば、図8に示す反例の例では、形式言語文701〜706などを選択できる。   The exclusion counterexample creation unit 110 acquires a counterexample from the counterexample holding unit 107 and accepts a selection of a formal language sentence constituting the counterexample from the user (step 901). For example, in the example of the counter example shown in FIG. 8, formal language sentences 701 to 706 can be selected.

除外反例作成部110は、上記反例から、ステップ901にて選択された形式言語文の形式言語仕様記述における行番号を取得する。そして、少なくとも上記行番号と上記形式言語文を含む除外反例を作成する(ステップ902)。例えば、ステップ901にて形式言語文701〜706を選択した場合、除外反例801を作成する。   The exclusion counterexample creating unit 110 acquires the line number in the formal language specification description of the formal language sentence selected in step 901 from the counterexample. Then, an exclusion counterexample including at least the line number and the formal language sentence is created (step 902). For example, when formal language sentences 701 to 706 are selected in step 901, an exclusion counterexample 801 is created.

除外反例作成部110は、ステップ902で作成した除外反例に対する編集をユーザから受け付けることで、上記除外反例を構成する形式言語文(除外反例文)の任意の組合せによる別の除外反例を作成する。その際ユーザは、記号“*”を用いることで、形式言語文の任意回数の繰り返しを記述することもできる(ステップ903)。例えば、除外反例作成部110はユーザからの入力に従って除外反例801を編集することで、除外反例804を作成できる。同様に除外反例作成部110はユーザからの入力に従って除外反例804を編集することで、除外反例805を作成できる。   The exclusion counterexample creation unit 110 accepts an edit to the exclusion counterexample created in step 902 from the user, thereby creating another exclusion counterexample by an arbitrary combination of formal language sentences (exclusion counterexamples) constituting the exclusion counterexample. At that time, the user can describe an arbitrary number of repetitions of the formal language sentence by using the symbol “*” (step 903). For example, the exclusion counterexample creation unit 110 can create the exclusion counterexample 804 by editing the exclusion counterexample 801 in accordance with an input from the user. Similarly, the exclusion counterexample creation unit 110 can create an exclusion counterexample 805 by editing the exclusion counterexample 804 in accordance with an input from the user.

除外反例作成部110は、ステップ902にて作成した除外反例、あるいはステップ903にて作成した除外反例を、除外反例保持部111に登録する(ステップ904)。   The exclusion counterexample creation unit 110 registers the exclusion counterexample created in step 902 or the exclusion counterexample created in step 903 in the exclusion counterexample holding unit 111 (step 904).

図11は、除外反例作成部110における除外反例作成画面の例である。   FIG. 11 is an example of an exclusion counterexample creation screen in the exclusion counterexample creation unit 110.

除外反例作成画面1809は、反例を表示する反例表示部1801、反例において選択中の行における形式言語文を表示する形式言語文表示部1803、上記選択された形式言語文の、形式言語仕様記述における行番号を表示する行番号表示部1802、選択した形式言語文を除外反例表示部1805の最後尾に追加する追加ボタン1804、除外反例を表示する除外反例表示部1805、繰り返しを意味する記号“*”を入力する記号入力部1808、除外反例表示部1805において選択された形式言語文を削除する削除ボタン1806、および除外反例表示部1805において選択された形式言語文を複製して除外反例表示部1805の最後尾に追加する複製ボタン1807、除外反例を除外反例保持部111に記録する登録ボタン1810を含む。   The exclusion counterexample creation screen 1809 includes a counterexample display section 1801 for displaying counterexamples, a formal language sentence display section 1803 for displaying formal language sentences in the line selected in the counterexample, and a formal language specification description of the selected formal language sentence. A line number display unit 1802 for displaying a line number, an add button 1804 for adding the selected formal language sentence to the tail of the exclusion counterexample display unit 1805, an exclusion counterexample display unit 1805 for displaying an exclusion counterexample, and a symbol “*” indicating repetition The symbol input unit 1808 for inputting “,” the delete button 1806 for deleting the formal language sentence selected in the exclusion counterexample display unit 1805, and the exclusion counterexample display unit 1805 by duplicating the formal language sentence selected in the exclusion counterexample display unit 1805. A copy button 1807 to be added to the end of the registration button 1, and a registration button 1 for recording an exclusion counterexample in the exclusion counterexample holding unit 111 Containing 10.

反例表示部1801において、形式言語文の選択入力を受け付けると(ステップ901)、除外反例作成部110は、選択された形式言語文と、その形式言語文の形式言語仕様記述における行番号を、それぞれ形式言語文表示部1803および行番号表示部1802に表示する。図11の反例表示部1801の例では、選択中の行は下線が引かれた状態で表示されている。そして、追加ボタン1804の押下を受け付けると、除外反例作成部110は選択された形式言語文を除外反例表示部1805の最後尾に追加する(ステップ902)。   When the counter-example display unit 1801 receives selection input of a formal language sentence (step 901), the exclusion counter-example creation unit 110 displays the selected formal language sentence and the line number in the formal language specification description of the formal language sentence, respectively. It is displayed on the formal language sentence display unit 1803 and the line number display unit 1802. In the example of the counterexample display unit 1801 in FIG. 11, the selected row is displayed in an underlined state. When the push of the add button 1804 is accepted, the exclusion counterexample creation unit 110 adds the selected formal language sentence to the end of the exclusion counterexample display unit 1805 (step 902).

除外反例表示部1805では、ユーザは形式言語文の追加、削除、あるいは形式言語文の順序の入れ替えなどの編集作業が可能である(ステップ903)。ユーザは除外反例表示部1805上でドラッグ&ドロップ等の作業を行って形式言語文を移動することで、形式言語文の順序を変更できる。さらに記号入力部1808を利用することで、ユーザは記号“*”を入力できる。また除外反例表示部1805において、ユーザが形式言語文の1つを選択した後に削除ボタン1806を押下すると、除外反例作成部110は選択中の形式言語文を除外反例表示部1805から削除する。同様に、ユーザが除外反例表示部1805において形式言語文を選択した後に複製ボタン1807を押下すると、除外反例作成部110は選択中の上記形式言語文を複製し、除外反例表示部1805の最後尾に追加する。   In the exclusion counterexample display unit 1805, the user can perform editing operations such as addition and deletion of formal language sentences, or replacement of the order of formal language sentences (step 903). The user can change the order of the formal language sentences by moving the formal language sentences by dragging and dropping on the exclusion counterexample display unit 1805. Further, by using the symbol input unit 1808, the user can input the symbol “*”. When the user selects one of the formal language sentences in the exclusion counterexample display unit 1805 and presses the delete button 1806, the exclusion counterexample creation unit 110 deletes the selected formal language sentence from the exclusion counterexample display unit 1805. Similarly, when the user selects a formal language sentence in the excluded counterexample display unit 1805 and presses the copy button 1807, the excluded counterexample creation unit 110 replicates the selected formal language sentence, and the tail of the excluded counterexample display unit 1805. Add to.

また、登録ボタン1810が押下されると、除外反例作成部110は除外反例表示部1805に表示されている除外反例の内容を、除外反例保持部111に登録する(ステップ904)。   When the registration button 1810 is pressed, the exclusion counterexample creation unit 110 registers the contents of the exclusion counterexample displayed in the exclusion counterexample display unit 1805 in the exclusion counterexample holding unit 111 (step 904).

なお、本実施例では、除外反例作成部110は検証部106で出力された反例に対する編集入力をユーザから受け付けることで、除外反例を作成する例を説明している。つまり本実施例では、除外反例を作成する前に少なくとも1回は、検証部106による検証を行う例を説明している。ただし別の実施形態として、検証部106で出力された反例を用いずに除外反例が作成されてもよい。たとえばユーザが編集部101を用いて、(検証部106で出力された反例を用いずに)図9に示されるような除外反例を作成し、除外反例保持部111に格納してもよい。この場合、偽反例除外支援装置201は、除外反例の作成前に検証部106による検証を行って反例を出力する必要はない。またこの場合、除外反例作成部110は、上で説明した機能を必ずしも有している必要はない。ユーザからのデータ入力を受け付けて、ユーザから入力された内容(除外反例)を除外反例保持部111に格納する機能(つまり編集部101と同程度の機能)を有していればよい。さらに別の実施形態として、偽反例除外支援装置201が除外反例作成部110を有さず、外部の計算機で作成された除外反例を、例えばネットワークを介して受信して、除外反例保持部111に格納するように構成されていてもよい。   In the present embodiment, an example in which the exclusion counterexample creation unit 110 generates an exclusion counterexample by receiving an edit input for the counterexample output from the verification unit 106 from the user is described. That is, in the present embodiment, an example is described in which verification by the verification unit 106 is performed at least once before the exclusion counterexample is created. However, as another embodiment, an exclusion counterexample may be created without using the counterexample output by the verification unit 106. For example, the user may use the editing unit 101 to create an exclusion counterexample as shown in FIG. 9 (without using the counterexample output from the verification unit 106) and store it in the exclusion counterexample holding unit 111. In this case, it is not necessary for the counterfeit example exclusion support apparatus 201 to perform verification by the verification unit 106 before generating the exception counterexample and output the counterexample. In this case, the exclusion counterexample creating unit 110 does not necessarily have the function described above. It only needs to have a function of accepting data input from the user and storing the content (exclusion counterexample) input by the user in the exception counterexample holding unit 111 (that is, the same function as the editing unit 101). In yet another embodiment, the counterfeit example exclusion support apparatus 201 does not have the exclusion counterexample creation unit 110 and receives an exception counterexample created by an external computer via, for example, a network, and stores it in the exception counterexample holding unit 111. It may be configured to store.

続いて、形式言語仕様記述更新部112の行う処理について説明する。除外反例が除外反例保持部111に登録されると、形式言語仕様記述更新部112の実行が可能になる。偽反例除外支援装置201は除外反例が除外反例保持部111に登録されたことを契機に、形式言語仕様記述更新部112の実行を開始しても良い。あるいは別の実施形態として、偽反例除外支援装置201は、ユーザから形式言語仕様記述更新部112による処理の開始の指示を受領したことを契機に、形式言語仕様記述更新部112の実行を開始するように構成されていてもよい。   Next, processing performed by the formal language specification description update unit 112 will be described. When the exception counterexample is registered in the exception counterexample holding unit 111, the formal language specification description updating unit 112 can be executed. The counterfeit example exclusion support apparatus 201 may start execution of the formal language specification description update unit 112 when the exception counterexample is registered in the exception counterexample holding unit 111. Alternatively, as another embodiment, the counterfeit example exclusion support apparatus 201 starts execution of the formal language specification description update unit 112 when an instruction to start processing by the formal language specification description update unit 112 is received from the user. It may be configured as follows.

図12は、除外反例804に基づき、形式言語仕様記述更新部112が更新した形式言語仕様記述の例である。   FIG. 12 is an example of a formal language specification description updated by the formal language specification description updating unit 112 based on the exclusion counterexample 804.

形式言語仕様記述更新部112は、除外反例804に基づき、図5に示す形式言語仕様記述に対して、除外反例に含まれる形式言語文を表す定数の定義1301、トレース配列の定義1302、およびトレース情報作成処理1303、1304を挿入する。本実施例では、形式言語仕様記述更新部112によって挿入される、定数の定義1301、トレース配列の定義1302、トレース情報作成処理1303のセットを、トレース挿入用記述と呼ぶ。   Based on the exclusion counterexample 804, the formal language specification description updating unit 112 defines a constant definition 1301, a trace array definition 1302, and a trace for the formal language specification description shown in FIG. Information creation processes 1303 and 1304 are inserted. In this embodiment, a set of constant definition 1301, trace array definition 1302, and trace information creation processing 1303 inserted by the formal language specification description update unit 112 is referred to as a trace insertion description.

定数の定義1301には、DecとFinの2つの定数が定義されている。除外反例804には、2種類の除外反例文(“7: x-”と“16: x--”)が定義されているので、形式言語仕様記述更新部112は定数の定義1301に2つの定数を定義する。なお、Decは7行目の形式言語文“x--”を表し、同様にFinは16行目の形式言語文“x--”を表す。形式言語仕様記述更新部112はこれら定数の名前に、重複のない任意の名前を設定する。   The constant definition 1301 defines two constants, Dec and Fin. Since the exclusion counterexample 804 defines two types of exclusion counterexamples (“7: x-” and “16: x--”), the formal language specification description update unit 112 includes two constant definitions 1301. Define constants. Note that Dec represents the formal language sentence “x--” on the seventh line, and similarly Fin represents the formal language sentence “x--” on the 16th line. The formal language specification description updating unit 112 sets arbitrary names without duplication as names of these constants.

トレース配列の定義1302では、上記形式言語文の実行を記録するためのトレース配列を表す変数trと、その配列インデックスを保持する変数indexが宣言されている。上記トレース配列の長さは、除外反例の行数よりも大きく設定する必要がある。本実施例では100としているが、除外反例の行数よりも大きければ任意の値で構わない。   In the trace array definition 1302, a variable tr representing a trace array for recording execution of the formal language sentence and a variable index holding the array index are declared. The length of the trace array needs to be set larger than the number of lines in the counterexample. In this embodiment, it is set to 100, but any value may be used as long as it is larger than the number of lines in the exclusion counterexample.

トレース情報作成処理1303、1304では、上記形式言語文の実行と同時に、定数の定義1301にて定義した、上記形式言語文を表す定数を代入している。例えばトレース情報作成処理1303では、トレース配列trに対して7行目の形式言語文“x--”を表す定数Decを代入している。そして、作成したトレース情報作成処理1303と、7行目の形式言語文“x--”はatomic節にて括られているので、図12の形式言語仕様記述が検証部106で実行されると、7行目の形式言語文“x--”の実行と同時に、トレース配列trにその実行を表す定数Decが格納される。   In the trace information creation processing 1303 and 1304, the constant representing the formal language sentence defined in the constant definition 1301 is substituted simultaneously with the execution of the formal language sentence. For example, in the trace information creation process 1303, a constant Dec representing the formal language sentence “x--” on the seventh line is assigned to the trace array tr. Since the created trace information creation process 1303 and the formal language sentence “x--” on the seventh line are bundled in an atomic section, when the formal language specification description of FIG. The constant Dec representing the execution is stored in the trace array tr simultaneously with the execution of the formal language sentence “x--” on the seventh line.

このように形式言語仕様記述更新部112によって、トレース挿入用記述が形式言語仕様記述に挿入されるため、形式言語仕様記述の検証が行われると(検証言語仕様記述が検証部106によって検証されると)、除外反例に含まれる形式言語文が実行される毎に、トレース配列に、実行された形式言語文を表す定数が実行順に格納される。そのため、形式言語仕様記述の検証後に(あるいは検証中に)、トレース配列を参照すると、形式言語仕様記述に含まれる各形式言語文が、除外反例に記述されている順に実行されたか否かを判断することができる。   In this way, the formal language specification description updating unit 112 inserts the trace insertion description into the formal language specification description. Therefore, when the formal language specification description is verified (the verification language specification description is verified by the verification unit 106). Each time a formal language sentence included in the counterexample is executed, a constant representing the executed formal language sentence is stored in the trace array in the order of execution. Therefore, after verifying the formal language specification description (or during verification), refer to the trace array to determine whether each formal language sentence included in the formal language specification description has been executed in the order described in the exclusion counterexample. can do.

図13は、形式言語仕様記述更新部112の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 13 is a flowchart illustrating a procedure example of the formal language specification description updating unit 112. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

形式言語仕様記述更新部112は、除外反例保持部111から除外反例を読み出す。そして形式言語仕様記述更新部112は、読み出された除外反例の中から、除外反例文を重複を排除して抽出する。さらに形式言語仕様記述更新部112は、抽出した除外反例文ごとに、その除外反例文を表す定数を決定し、決定した定数の定義を、形式言語仕様記述保持部103に格納されている形式言語仕様記述に書き加える(ステップ1401)。ここで決定される定数の数は、抽出された除外反例文の数と同じである。   The formal language specification description updating unit 112 reads the excluded counterexample from the excluded counterexample holding unit 111. Then, the formal language specification description update unit 112 extracts the excluded counterexamples from the read out counterexamples by eliminating duplication. Further, the formal language specification description updating unit 112 determines a constant representing the excluded counter example sentence for each extracted counter example sentence, and the definition of the determined constant is stored in the formal language specification description holding unit 103. Write to the specification description (step 1401). The number of constants determined here is the same as the number of excluded counterexample sentences extracted.

例えば除外反例804には、4行の除外反例文が記述されている。その中から重複のないように除外反例文を抽出する場合、7行目の形式言語文(7: x--)と、16行目の形式言語文(16: x--)の2つの形式言語文が抽出される(つまり、形式言語文の内容が同一(x--)でも行番号が異なる2つの行(除外反例文)が除外反例に含まれている場合、形式言語仕様記述更新部112は2つの除外反例文は異なる文と判断して、2つの除外反例文を抽出する)。そのため、図12における定数の定義1301では、DecとFinの2つの定数が定義されている。Decは7行目の形式言語文に、Finは16行目の形式言語文にそれぞれ対応する。定数の名称及び値は、形式言語仕様記述更新部112が任意に決定できる。   For example, the exclusion counterexample 804 describes four lines of exclusion counterexamples. When extracting the exclusion example sentence so that there is no duplication, two forms of the formal language sentence (7: x--) on the 7th line and the formal language sentence (16: x--) on the 16th line When a language sentence is extracted (that is, when two lines with different line numbers (exclusion counterexample) are included in the exclusion counterexample even though the content of the formal language sentence is the same (x--), the formal language specification description update unit 112 determines that the two excluded counterexamples are different sentences and extracts the two excluded counterexamples). Therefore, in the constant definition 1301 in FIG. 12, two constants Dec and Fin are defined. Dec corresponds to the formal language sentence on the 7th line, and Fin corresponds to the formal language sentence on the 16th line. The formal language specification description updating unit 112 can arbitrarily determine the name and value of the constant.

また、ある除外反例文に対して“*”を付与した除外反例文と、“*”を付与していない除外反例文の両方が除外反例に含まれる場合、それらの除外反例文は別の文として扱われる。例えば形式言語仕様記述更新部112が除外反例805から除外反例文を抽出する場合、記号806が付与された除外反例文“(x--)*”を“(x--)”とは別の文として扱う。そのためこの場合には、形式言語仕様記述更新部112はFinとDecに加えて、“(x--)*”に対応する別の定数(例えばDec_itr)を定義する。   In addition, when an excluded example sentence to which “*” is added to an excluded example sentence and an excluded example sentence to which “*” is not included are included in the excluded example sentence, these excluded example sentences are different sentences. Are treated as For example, when the formal language specification description updating unit 112 extracts an excluded counterexample sentence from the excluded counterexample 805, the excluded counterexample sentence “(x-) *” to which the symbol 806 is assigned is different from “(x--)”. Treat as a sentence. Therefore, in this case, the formal language specification description updating unit 112 defines another constant (for example, Dec_itr) corresponding to “(x-) *” in addition to Fin and Dec.

形式言語仕様記述更新部112は、上記除外反例を構成する除外反例文の実行をトレース情報として記録するため、形式言語仕様記述保持部103内の形式言語仕様記述に、ステップ1401で定義した定数を格納可能なトレース配列とその配列インデックスを保持する変数の定義を書き加える(ステップ1402)。例えば図12におけるトレース配列の定義1302では、トレース配列trとそのインデックスを保持する変数indexを定義している。   The formal language specification description updating unit 112 records the constant defined in step 1401 in the formal language specification description in the formal language specification description holding unit 103 in order to record the execution of the excluded counter example sentence constituting the above exclusion counterexample as trace information. A storable trace array and a definition of a variable holding the array index are added (step 1402). For example, a trace array definition 1302 in FIG. 12 defines a trace array tr and a variable index that holds its index.

形式言語仕様記述更新部112は、ステップ1401で抽出された除外反例文のうち、まだステップ1404の処理が行われていない除外反例文を1つ選択する(ステップ1403)。   The formal language specification description updating unit 112 selects one excluded example sentence that has not been processed in step 1404 among the excluded example sentences extracted in step 1401 (step 1403).

形式言語仕様記述更新部112は、ステップ1403で選択した除外反例文について、上記配列インデックスを更新する(1を加算する)処理“index++”と、選択された除外反例文を表す定数をトレース配列に代入するトレース情報作成処理を、形式言語仕様記述保持部103内の形式言語仕様記述における上記形式言語文と同一のatomic節内に記述する(ステップ1404)。例えば、除外反例804に含まれる形式言語文のうち、形式言語仕様記述の7行目に位置する“x--”についてトレース情報作成処理を挿入した結果が、図12におけるトレース情報作成処理1303である。   The formal language specification description update unit 112 updates the array index (add 1) for the excluded example sentence selected in step 1403 and adds a constant representing the selected example sentence to the trace array. The trace information creation process to be substituted is described in the same atomic clause as the formal language sentence in the formal language specification description in the formal language specification description holding unit 103 (step 1404). For example, among the formal language sentences included in the exclusion counterexample 804, the result of inserting the trace information creation process for “x--” located in the seventh line of the formal language specification description is the trace information creation process 1303 in FIG. is there.

また、ステップ1403で選択した除外反例文が“*”付きの除外反例文の場合、形式言語仕様記述に挿入されるトレース情報作成処理は、“*”なしの場合とは異なる。その場合のトレース情報作成処理は、「配列インデックスの示すトレース配列に“*”なしの上記除外反例文に対応する定数が格納されている場合は、上記トレース配列に“*”付きの上記除外反例文に対応する定数を代入する。あるいは、配列インデックスの示すトレース配列に“*”付きの上記除外反例文に対応する定数が格納されている場合は、上記トレース配列は更新しない。上記以外の場合は、配列インデックスを“index++”にて更新した後に、“*”なしの上記除外反例文に対応する定数を上記トレース配列に代入する」という処理を表す。例えば、記号806が付与された除外反例文に対応する定数をDec_itrとすると、記号806が付与された除外反例文に対応するトレース情報作成処理は、“if :: tr[index] == Dec -> tr[index] = Dec_itr; :: tr[index] == Dec_itr -> skip; :: else -> index++; tr[index] = Dec;fi”となる。   Further, when the excluded example sentence selected in step 1403 is an excluded example sentence with “*”, the trace information creation process inserted into the formal language specification description is different from the case without “*”. In this case, the trace information creation process is “if the constant corresponding to the above-mentioned exclusion example sentence without“ * ”is stored in the trace array indicated by the array index,” A constant corresponding to an example sentence is substituted, or the trace array is not updated if a constant corresponding to the excluded counterexample sentence with “*” is stored in the trace array indicated by the array index. Represents a process of substituting a constant corresponding to the above-mentioned excluded example sentence without “*” into the trace array after updating the array index with “index ++”. For example, if the constant corresponding to the excluded example sentence to which the symbol 806 is assigned is Dec_itr, the trace information creation process corresponding to the excluded example sentence to which the symbol 806 is assigned is “if :: tr [index] == Dec − > tr [index] = Dec_itr; :: tr [index] == Dec_itr-> skip; :: else-> index ++; tr [index] = Dec; fi ”.

形式言語仕様記述更新部112は、ステップ1401で抽出された全ての除外反例文についてステップ1404の処理を実行したかチェックする。全ての除外反例文についてステップ1404を実行済みの場合、形式言語仕様記述更新部112は処理を終了し、次に検証性質更新部113の処理を開始する。未取得の除外反例文がある場合は、形式言語仕様記述更新部112は再びステップ1403から処理を実行する(ステップ1405)。   The formal language specification description update unit 112 checks whether or not the processing of step 1404 has been executed for all the excluded counterexample sentences extracted in step 1401. When Step 1404 has been executed for all the excluded counterexample sentences, the formal language specification description updating unit 112 ends the processing, and then starts the processing of the verification property updating unit 113. If there is an unacquired excluded counterexample sentence, the formal language specification description updating unit 112 executes the processing from step 1403 again (step 1405).

続いて、検証性質更新部113の行う処理について説明する。図14は、検証性質更新部113が除外反例804に基づき、検証性質記述302(図3)を更新した時の、更新後の検証性質記述の例である。   Next, processing performed by the verification property update unit 113 will be described. FIG. 14 shows an example of the updated verification property description when the verification property update unit 113 updates the verification property description 302 (FIG. 3) based on the exclusion counterexample 804.

検証性質更新部113は、上記トレース配列が上記除外反例の示す順序で上記除外反例文を表す定数を保持しているかを判定するためのトレース判定式を作成する。除外反例804に基づいて作成されたトレース判定式が、トレース判定式1502である。そして検証性質更新部113は、作成されたトレース判定式1502を用いて、検証性質記述302を、「上記検証性質が成立しなければ、その実行系列においてトレース判定式が成立する」という性質の記述に書き換える。検証性質記述1501は、検証性質更新部113によって検証性質記述302が書き換えられた後の状態である。このように検証性質記述が書き換えられるため、検証部106による検証の結果(あるいは検証の過程で)、(書き換え前の)検証性質が成立しなかった場合であっても、もしも除外反例に記述されている順に形式言語仕様記述を構成する形式言語文が実行されていた場合、検証部106は反例(除外反例)の出力を行わない。   The verification property updating unit 113 creates a trace determination formula for determining whether the trace array holds a constant representing the excluded counterexample sentence in the order indicated by the excluded counterexample. A trace determination formula created based on the exclusion counterexample 804 is a trace determination formula 1502. Then, the verification property updating unit 113 uses the generated trace determination formula 1502 to change the verification property description 302 to a description of the property that “if the verification property is not satisfied, the trace determination formula is satisfied in the execution sequence”. Rewrite to The verification property description 1501 is a state after the verification property description 302 is rewritten by the verification property update unit 113. Since the verification property description is rewritten in this way, even if the verification property (before verification) does not hold as a result of verification by the verification unit 106 (or in the verification process), it is described as an exclusion counterexample. When the formal language sentences constituting the formal language specification description are executed in the order in which they are displayed, the verification unit 106 does not output the counterexample (exclusion counterexample).

図15は、検証性質更新部113の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 15 is a flowchart illustrating a procedure example of the verification property update unit 113. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

検証性質更新部113は、検証性質保持部102から更新前の検証性質を読み出し、一旦メモリ203等に記憶する(ステップ1601)。例えば、検証性質記述302の場合、検証性質更新部113は“[](!(x < 0))”を記憶する。   The verification property updating unit 113 reads the verification property before the update from the verification property holding unit 102 and temporarily stores it in the memory 203 or the like (step 1601). For example, in the case of the verification property description 302, the verification property update unit 113 stores “[] (! (X <0))”.

検証性質更新部113は、除外反例に含まれる除外反例文を表す定数とその格納のためのトレース配列を、形式言語仕様記述保持部103から取得する(ステップ1602)。例えば除外反例804の場合は、定数の定義1301に定義されているDecやFin等の定数と、トレース配列の定義1302に定義されているトレース配列trを取得する。なお、別の実施形態として検証性質更新部113は、除外反例に含まれる形式言語文を表す定数とその格納のためのトレース配列を、形式言語仕様記述更新部112から受領してもよい。   The verification property update unit 113 obtains constants representing the excluded counterexamples included in the counterexample and the trace array for storing the constants from the formal language specification description holding unit 103 (step 1602). For example, in the case of the exclusion counterexample 804, constants such as Dec and Fin defined in the constant definition 1301 and the trace array tr defined in the trace array definition 1302 are acquired. As another embodiment, the verification property update unit 113 may receive from the formal language specification description update unit 112 a constant representing a formal language sentence included in the counterexample and a trace array for storing the constant.

検証性質更新部113は、上記トレース配列が、上記除外反例の示す順に上記定数を保持しているかを判定するためのトレース判定式を作成する(ステップ1603)。例えば除外反例804の場合は、トレース判定式1502を作成する。   The verification property update unit 113 creates a trace determination formula for determining whether the trace array holds the constants in the order indicated by the exclusion counterexample (step 1603). For example, in the case of the counterexample 804, a trace determination formula 1502 is created.

検証性質更新部113は、更新前の検証性質が成立しなければその実行系列においてトレース判定式が成立するという意味の式を作成し、更新後の検証性質として検証性質保持部に登録する(ステップ1604)。例えば除外反例804の場合は、トレース判定式1502を用いて検証性質記述1501を作成し、検証性質保持部102に格納されている検証性質を、今回作成した検証性質記述1501に書き換える。   The verification property update unit 113 creates an expression that means that the trace determination formula is satisfied in the execution sequence if the verification property before the update is not satisfied, and registers it in the verification property holding unit as the verification property after the update (step 1604). For example, in the case of the counterexample 804, the verification property description 1501 is created using the trace determination formula 1502, and the verification property stored in the verification property holding unit 102 is rewritten to the verification property description 1501 created this time.

この後ユーザは、更新された形式言語仕様記述と検証性質記述を用いて、検証部106による検証を行うと良い。更新された形式言語仕様記述と検証性質記述を用いて検証が行われた場合、検証部106は除外反例を出力しない。またユーザは、検証部106を用いて検証を行う代わりに、偽反例除外支援装置201以外の計算機にインストールされている検証ツールに、更新された形式言語仕様記述と検証性質記述を与えることで、検証を行ってもよい。   Thereafter, the user may perform verification by the verification unit 106 using the updated formal language specification description and verification property description. When verification is performed using the updated formal language specification description and verification property description, the verification unit 106 does not output the counterexample. Further, instead of performing verification using the verification unit 106, the user gives an updated formal language specification description and verification property description to a verification tool installed in a computer other than the counterfeit example exclusion support apparatus 201, Verification may be performed.

以上が、本発明の実施例1に係る偽反例除外支援装置の説明である。本発明の実施例1に係る偽反例除外支援装置は、形式言語で記述した仕様記述である形式言語仕様記述が、その仕様が満たすべき性質を記述した検証性質記述を満たすか検証された結果出力される1以上の反例の中から、除外すべき除外反例を登録するための入力を受け付ける。そして偽反例除外支援装置は、形式言語文の実行を記録するためのトレース配列の定義と、上記形式言語文を実行した場合に上記トレース配列に上記形式言語文を表す定数を代入するトレース情報作成処理を上記形式言語仕様記述に挿入する。また偽反例除外支援装置は、上記トレース配列を使用して、トレース配列が上記除外反例の示す順序で上記形式言語文を表す定数を保持しているかを判定するためのトレース判定式を作成し、上記検証性質記述を、「上記検証性質が成立しなければ、その実行系列においてトレース判定式が成立する」という性質の記述に置き換える。これにより、更新後の形式言語仕様記述が、同じく更新後の検証性質記述を満たすかを検証した場合、上記除外反例が検証の結果として出力されることを防止できるようになる。よって本実施例に係る偽反例除外支援装置によれば、人手で形式言語仕様記述を詳細化することなく、一度偽反例と判定した反例を検証の出力から除外できるようになるため、システム仕様の不具合検出にかかる作業時間および作業工数を削減できる。   The above is the description of the counterfeit example exclusion support apparatus according to the first embodiment of the present invention. The false counterexample exclusion support apparatus according to the first embodiment of the present invention outputs a result of verification that a formal language specification description, which is a specification description described in a formal language, satisfies a verification property description that describes a property to be satisfied by the specification. An input for registering an excluded counterexample to be excluded is received from one or more counterexamples. The counterfeit example exclusion support device defines the trace array for recording the execution of the formal language sentence, and creates trace information that substitutes a constant representing the formal language sentence into the trace array when the formal language sentence is executed. Insert the process into the formal language specification description. Further, the false counterexample exclusion support device uses the trace array to create a trace determination expression for determining whether the trace array holds constants representing the formal language sentences in the order indicated by the exception counterexample. The verification property description is replaced with a description of the property that if the verification property does not hold, the trace judgment expression is satisfied in the execution sequence. As a result, when it is verified whether the updated formal language specification description satisfies the updated verification property description, it is possible to prevent the exclusion counterexample from being output as a verification result. Therefore, according to the counterfeit example exclusion support apparatus according to the present embodiment, the counterexample once determined to be a counterfeit example can be excluded from the verification output without manually refining the formal language specification description. The work time and work man-hours required for defect detection can be reduced.

また本実施例に係る偽反例除外支援装置は、上記形式言語仕様記述が上記検証性質記述を満たすか検証した結果出力される反例を編集することで、除外反例を作成することもできるため、何もない状態から除外反例を作成するよりも効率よく除外反例を作成することができる。また本実施例に係る偽反例除外支援装置は、出力された反例を編集することで、任意の別の除外反例を作成することもできる。その際、記号“*”を用いることで、形式言語文の任意回数の繰り返しを記述することもできる。これにより、検証結果として出力された反例だけでなく、出力された反例から連想される別の反例も、偽反例として検証出力から除外できるようになるため、システム仕様の不具合検出にかかる作業時間および作業工数を削減できる。   In addition, the false counterexample exclusion support apparatus according to the present embodiment can create an exception counterexample by editing a counterexample output as a result of verifying whether the formal language specification description satisfies the verification property description. Therefore, it is possible to create an exclusion counterexample more efficiently than to create an exclusion counterexample from a state where there is no such thing. Moreover, the false counterexample exclusion support apparatus according to the present embodiment can create any other counterexample by editing the output counterexample. At that time, the symbol “*” can be used to describe an arbitrary number of repetitions of the formal language sentence. As a result, not only counterexamples output as verification results, but also other counterexamples associated with the output counterexamples can be excluded from the verification output as false counterexamples. Work man-hours can be reduced.

続いて実施例2に係る偽反例除外支援装置の説明を行う。実施例2に係る偽反例除外支援装置のハードウェア構成は、実施例1で説明したもの(図2)と同じであるので、ここでの説明は略す。   Next, the counterfeit example exclusion support apparatus according to the second embodiment will be described. Since the hardware configuration of the counterfeit example exclusion support apparatus according to the second embodiment is the same as that described in the first embodiment (FIG. 2), description thereof is omitted here.

図16に、実施例2に係る偽反例除外支援装置の有する機能ブロックを示す。これらの機能ブロックの多くは実施例1で説明したものと同じであるため、以下では主に、実施例1にはない機能ブロックについて説明する。   FIG. 16 illustrates functional blocks included in the counterfeit example exclusion support device according to the second embodiment. Since many of these functional blocks are the same as those described in the first embodiment, functional blocks that are not in the first embodiment will be mainly described below.

実施例2に係る偽反例除外支援装置は、実施例1で説明した除外反例作成部110に代えて、自然言語反例作成部108、自然言語反例向け除外反例作成部114を有する。また実施例2に係る偽反例除外支援装置は、実施例1で説明した各記憶部に加えて、自然言語反例保持部109という記憶部を有する。その他の点は、実施例1で説明したものと同じである。   The false counterexample exclusion support device according to the second embodiment includes a natural language counterexample creation unit 108 and a natural language counterexample exception counterexample creation unit 114 instead of the exclusion counterexample creation unit 110 described in the first embodiment. Further, the false counterexample exclusion support device according to the second embodiment includes a storage unit called a natural language counterexample holding unit 109 in addition to the storage units described in the first embodiment. The other points are the same as those described in the first embodiment.

自然言語反例作成部108は、反例保持部107に保持している反例を取得し、上記反例に含まれる自然言語文を抽出することで自然言語反例を作成する。作成した上記自然言語反例は、自然言語反例保持部109に登録する。   The natural language counterexample creation unit 108 acquires a counterexample held in the counterexample storage unit 107 and extracts a natural language sentence included in the counterexample to create a natural language counterexample. The created natural language counterexample is registered in the natural language counterexample holding unit 109.

自然言語反例向け除外反例作成部114は、自然言語反例保持部109に保持している自然言語反例を取得し、上記自然言語反例を構成する自然言語文の選択および編集をユーザから受け付けることで、上記自然言語反例を構成する自然言語文の任意の組合せにて表される別の自然言語反例を作成する。その際ユーザは、記号“*”を用いることで、自然言語文の任意回数の繰り返しを記述することもできる。また自然言語反例向け除外反例作成部114は、上記自然言語反例を構成する各自然言語文を、対応する形式言語文に置き換えることで、形式言語の除外反例に変換できる。この変換は、言語間対応関係保持部105に保持している形式言語文と自然言語文との対応関係に基づいて行われる。この変換によって作成された除外反例は、除外反例保持部111に登録される。   The natural language counterexample excluding counterexample creating unit 114 acquires a natural language counterexample stored in the natural language counterexample holding unit 109, and accepts selection and editing of a natural language sentence constituting the natural language counterexample from the user. Another natural language counterexample represented by an arbitrary combination of natural language sentences constituting the natural language counterexample is created. At that time, the user can describe an arbitrary number of repetitions of the natural language sentence by using the symbol “*”. The natural language counterexample excluding counterexample creating unit 114 can convert each natural language sentence constituting the natural language counterexample to a corresponding formal language sentence to convert it into a formal language excluded counterexample. This conversion is performed based on the correspondence between the formal language sentence and the natural language sentence held in the inter-language correspondence holding unit 105. The exclusion counterexample created by this conversion is registered in the exclusion counterexample holding unit 111.

図17は、自然言語反例作成部108が作成する自然言語反例の例である。   FIG. 17 is an example of a natural language counterexample created by the natural language counterexample creating unit 108.

自然言語反例1001は、図8に示す反例から、自然言語文707〜712を抽出することで作成した自然言語反例である。自然言語反例は、少なくとも自然言語文1003と、その自然言語文に対応する形式言語文の形式言語仕様記述における行番号1002を含む。また自然言語反例向け除外反例作成部114は、自然言語反例に対する編集をユーザから受け付けることで、自然言語反例を構成する自然言語文の任意の組合せによる別の自然言語反例を作成する。自然言語反例1004は、自然言語反例1001を編集することで作成された自然言語反例の例である。同様に自然言語反例1005は、自然言語反例1004を編集することで作成された自然言語反例の例である。記号1006は、除外反例806における記号806と同様に、自然言語文“減算”の任意回数の繰り返しを意味する。これらの自然言語反例は、自然言語反例保持部109に保持される。   The natural language counterexample 1001 is a natural language counterexample created by extracting natural language sentences 707 to 712 from the counterexample shown in FIG. The natural language counterexample includes at least a natural language sentence 1003 and a line number 1002 in the formal language specification description of the formal language sentence corresponding to the natural language sentence. Further, the natural language counterexample excluding counterexample creating unit 114 accepts editing of the natural language counterexample from the user, thereby generating another natural language counterexample by an arbitrary combination of natural language sentences constituting the natural language counterexample. The natural language counterexample 1004 is an example of a natural language counterexample created by editing the natural language counterexample 1001. Similarly, the natural language counterexample 1005 is an example of a natural language counterexample created by editing the natural language counterexample 1004. A symbol 1006 means an arbitrary number of repetitions of the natural language sentence “subtraction”, similar to the symbol 806 in the exclusion counterexample 806. These natural language counterexamples are held in the natural language counterexample holding unit 109.

また、自然言語反例1001は、自然言語反例向け除外反例作成部114によって、形式言語の除外反例801に変換される。同様に、自然言語反例1004および自然言語反例1005は、自然言語反例向け除外反例作成部114によって、それぞれ除外反例804および805に変換される。   Further, the natural language counterexample 1001 is converted into a formal language exclusion counterexample 801 by the natural language counterexample excluding counterexample creating unit 114. Similarly, the natural language counterexample 1004 and the natural language counterexample 1005 are converted into excluded counterexamples 804 and 805 by the natural language counterexample excluding counterexample creating unit 114, respectively.

図18は、自然言語反例作成部108の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 18 is a flowchart illustrating a procedure example of the natural language counterexample creation unit 108. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

自然言語反例作成部108は、反例保持部107から反例を取得し、上記反例に含まれる自然言語文を抽出する。抽出のためには、自然言語反例作成部108は反例の先頭から文字列検索を実行し、自然言語文の接頭辞として定義した“TRACE”を含む行を取得する。その際自然言語反例作成部108は、形式言語仕様記述において上記自然言語文を出力している記述の行番号も併せて取得する。本実施例では形式言語仕様記述において、自然言語文を出力する記述をその対応する形式言語文と同じ行に挿入しているため、上記行番号は、自然言語文に対応する形式言語文の行番号と一致する。自然言語反例作成部108は上記自然言語文と上記行番号を用いて、自然言語反例を作成する(ステップ1101)。例えば自然言語反例作成部108は、図8に示す反例から、“TRACE”を含む行(自然言語文707〜712)を抽出することで自然言語反例1001を作成する。   The natural language counterexample creation unit 108 acquires a counterexample from the counterexample holding unit 107 and extracts a natural language sentence included in the counterexample. For extraction, the natural language counterexample creation unit 108 performs a character string search from the top of the counterexample, and acquires a line including “TRACE” defined as a prefix of the natural language sentence. At that time, the natural language counterexample creating unit 108 also acquires the line number of the description outputting the natural language sentence in the formal language specification description. In the present embodiment, in the formal language specification description, the description for outputting the natural language sentence is inserted in the same line as the corresponding formal language sentence. Therefore, the line number is the line of the formal language sentence corresponding to the natural language sentence. Matches the number. The natural language counterexample creation unit 108 creates a natural language counterexample using the natural language sentence and the line number (step 1101). For example, the natural language counterexample creation unit 108 creates a natural language counterexample 1001 by extracting lines (natural language sentences 707 to 712) including “TRACE” from the counterexample shown in FIG.

そして自然言語反例作成部108は、ステップ1101にて作成した自然言語反例を、自然言語反例保持部109に登録し(ステップ1103)、処理を終了する。   Then, the natural language counterexample creation unit 108 registers the natural language counterexample created in step 1101 in the natural language counterexample holding unit 109 (step 1103), and ends the process.

図19は、自然言語反例向け除外反例作成部114の手順例を示すフローチャートである。以下に示す処理は、偽反例除外支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 19 is a flowchart illustrating an exemplary procedure of the exclusion counterexample creation unit 114 for natural language counterexamples. The processing shown below is realized by a program executed by the memory 203 by the CPU 202 provided in the counterfeit example exclusion support apparatus 201. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

自然言語反例向け除外反例作成部114は、自然言語反例保持部109から自然言語反例を取得し、取得した自然言語反例に対する編集入力をユーザから受け付けることで、別の自然言語反例を作成する。その際ユーザは記号“*”を用いることで、自然言語文の任意回数の繰り返しを記述する事もできる(ステップ1201)。   The natural language counterexample excluding counterexample creation unit 114 acquires a natural language counterexample from the natural language counterexample holding unit 109, and receives an edit input for the acquired natural language counterexample from the user, thereby generating another natural language counterexample. At that time, the user can describe an arbitrary number of repetitions of the natural language sentence by using the symbol “*” (step 1201).

自然言語反例向け除外反例作成部114は、言語間対応関係保持部105の保持する言語間対応関係401を参照することで、上記自然言語反例の自然言語文を、対応する形式言語文に置き換える。これにより上記自然言語反例が、形式言語の除外反例に変換される(ステップ1202)。   The natural language counterexample excluding counterexample creating unit 114 refers to the interlanguage correspondence 401 held by the interlanguage correspondence holding unit 105 to replace the natural language sentence of the natural language counterexample with the corresponding formal language sentence. As a result, the natural language counterexample is converted into a formal language exclusion counterexample (step 1202).

ステップ1202の後、自然言語反例向け除外反例作成部114は、作成した除外反例を除外反例保持部111に登録する(ステップ1203)。   After step 1202, the natural language counterexample-exclusion counterexample creation unit 114 registers the created counterexample in the exclusion counterexample holding unit 111 (step 1203).

図20は、自然言語反例向け除外反例作成部114における自然言語反例の編集画面の例である。   FIG. 20 is an example of a natural language counterexample editing screen in the natural language counterexample excluding counterexample creating unit 114.

自然言語反例編集画面1905は、自然言語反例を表示する自然言語反例表示部1901、記号“*”を入力する記号入力部1904、自然言語反例表示部1901において選択された自然言語文を削除する削除ボタン1902、自然言語反例表示部1901において選択された自然言語文を複製する複製ボタン1903、そして編集された自然言語反例を除外反例に変換して除外反例保持部111に記録する登録ボタン1810を含む。   The natural language counterexample editing screen 1905 includes a natural language counterexample display unit 1901 that displays a natural language counterexample, a symbol input unit 1904 that inputs the symbol “*”, and a deletion that deletes a natural language sentence selected in the natural language counterexample display unit 1901. A button 1902, a duplicate button 1903 that duplicates the natural language sentence selected in the natural language counterexample display unit 1901, and a registration button 1810 that converts the edited natural language counterexample into an excluded counterexample and records it in the excluded counterexample holding unit 111. .

自然言語反例表示部1901では、ユーザはドラッグ&ドロップ等にて自然言語文を移動することで、自然言語文の順序を変更できる。さらにユーザは記号入力部1808を利用することで、繰り返しを意味する記号“*”を入力できる。また自然言語反例向け除外反例作成部114は、自然言語反例表示部1901において自然言語文の選択を受け付けた後に削除ボタン1902の押下を受け付けると、選択中の上記自然言語文を自然言語反例表示部1901から削除する。同様に自然言語反例向け除外反例作成部114は、自然言語反例表示部1901において自然言語文の選択を受け付けた後に複製ボタン1903の押下を受け付けると、選択中の上記自然言語文を複製し、自然言語反例表示部1901の最後尾に追加する。また、登録ボタン1900が押下されると、自然言語反例向け除外反例作成部114は自然言語反例表示部1901に表示されている自然言語反例を、形式言語の除外反例に変換し、変換された除外反例を除外反例保持部111に登録する(ステップ1202、1203)。   In the natural language counterexample display unit 1901, the user can change the order of the natural language sentences by moving the natural language sentences by drag & drop or the like. Further, the user can input a symbol “*” indicating repetition by using the symbol input unit 1808. Also, when the natural language counterexample display unit 1901 receives a selection of a natural language sentence after receiving a selection of a natural language sentence, the natural language counterexample excluding counterexample creating unit 114 receives the selection of the delete button 1902 and displays the selected natural language sentence as a natural language counterexample display unit. Delete from 1901. Similarly, when a natural language counterexample display unit 1901 receives a selection of a natural language sentence after receiving a selection of a natural language sentence, the natural language counterexample excluding counterexample creating unit 114 copies the natural language sentence being selected, It is added at the end of the language counterexample display unit 1901. When the registration button 1900 is pressed, the natural language counterexample exclusion counterexample creation unit 114 converts the natural language counterexample displayed in the natural language counterexample display unit 1901 into a formal language exclusion counterexample, and the converted exclusion Counterexamples are registered in the excluded counterexample holding unit 111 (steps 1202 and 1203).

除外反例が作成された後の処理は、実施例1で説明したものと同様である。つまりユーザは、形式言語仕様記述更新部112を実行することで、形式言語仕様記述を更新し、さらに検証性質更新部113を実行することで検証性質記述の書き換えを行うとよい。そしてユーザは、更新された形式言語仕様記述と検証性質記述を用いて、検証部106による検証を行うとよい。   The processing after the exclusion counterexample is created is the same as that described in the first embodiment. In other words, the user may update the formal language specification description by executing the formal language specification description update unit 112 and further rewrite the verification property description by executing the verification property update unit 113. Then, the user may perform verification by the verification unit 106 using the updated formal language specification description and verification property description.

以上が実施例2に係る偽反例除外支援装置の説明である。実施例2に係る偽反例除外支援装置は実施例1に係る偽反例除外支援装置と同様に、人手で形式言語仕様記述を詳細化することなく、容易に偽反例を検証出力から除外できるという特徴を有する。   The above is the description of the counterfeit example exclusion support device according to the second embodiment. Similar to the false counterexample exclusion support device according to the first embodiment, the false counterexample exclusion support device according to the second embodiment can easily exclude the false counterexample from the verification output without manually refining the formal language specification description. Have

また実施例2に係る偽反例除外支援装置は、上記形式言語仕様記述を構成する任意の形式言語文に対して、その文の意味を説明する自然言語文の入力を受け付ける。そして、上記形式言語文の実行時に上記自然言語文を出力するように上記形式言語仕様記述を更新する。これにより、上記自然言語文が反例に追加されるため、上記反例から上記自然言語文のみを抽出することで、自然言語で記述された自然言語反例を作成できる。   Further, the false counterexample exclusion support apparatus according to the second embodiment accepts an input of a natural language sentence explaining the meaning of a sentence for any formal language sentence constituting the formal language specification description. Then, the formal language specification description is updated so that the natural language sentence is output when the formal language sentence is executed. Thereby, since the natural language sentence is added to the counterexample, a natural language counterexample described in a natural language can be created by extracting only the natural language sentence from the counterexample.

さらに実施例1で説明した偽反例除外支援装置が、出力された反例を編集して別の除外反例を作成することができるのと同様に、実施例2に係る偽反例除外支援装置は、自然言語反例に対する編集を受け付けることで、別の自然言語反例を作成することもできる。その際、形式言語の反例と同様に、記号“*”を用いることで、自然言語文の任意回数の繰り返しを記述することもできる。これらの自然言語反例は、その構成要素である自然言語文を対応する形式言語文に置き換えることで、形式言語の除外反例に変換できる。そして上記除外反例に基づいて上記トレース配列の定義やトレース情報作成処理を挿入し、上記形式言語仕様記述を更新することができる。同様に、トレース判定式を作成し、検証性質記述を更新することもできる。これにより、形式言語ではなく自然言語上で除外反例を作成できるようになるため、形式言語を解読できない検証者でも、本発明による偽反例の除外を実施できるようになる。   Further, the false counterexample exclusion support apparatus according to the second embodiment is similar to the fact that the counterexample exclusion support apparatus described in the first embodiment can create another exclusion counterexample by editing the output counterexample. It is possible to create another natural language counterexample by accepting edits to the language counterexample. At this time, as in the counterexample of the formal language, the symbol “*” can be used to describe an arbitrary number of repetitions of the natural language sentence. These natural language counterexamples can be converted into formal language exclusion counterexamples by replacing the constituent natural language sentences with corresponding formal language sentences. The definition of the formal language specification can be updated by inserting the definition of the trace array and the trace information creation process based on the above counterexample. Similarly, a trace judgment expression can be created and the verification property description can be updated. As a result, it becomes possible to create an exclusion counterexample in a natural language instead of a formal language, so that even a verifier who cannot decipher the formal language can perform the exclusion of a false counterexample according to the present invention.

以上、本発明の実施例を説明してきたが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。   As mentioned above, although the Example of this invention was described, these are illustrations for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention only to these Examples. The present invention can be implemented in various other forms.

たとえば上で述べた実施例では、除外反例作成部等の機能ブロックが、汎用的な計算機のプロセッサでプログラムが実行されることにより実現される機能ブロックである例を説明した。ただし別の実施形態として、偽反例除外支援装置の一部または全ての機能ブロックは、FPGAやASIC等のハードウェアで実装されていてもよい。   For example, in the embodiment described above, the example in which the functional blocks such as the exclusion counterexample creation unit are functional blocks realized by executing a program by a processor of a general-purpose computer has been described. However, as another embodiment, some or all of the functional blocks of the counterfeit example exclusion support apparatus may be implemented by hardware such as FPGA or ASIC.

また、上で述べた実施例では、除外反例を構成する形式言語文の実行を記録するために、トレース配列を定義して、除外反例を構成する形式言語文が実行される時にトレース配列にその旨を記録する処理(トレース情報作成処理)が、形式言語仕様記述に挿入された。ただし、トレース情報を記録するための方法は、これに限定されない。除外反例に記述された順序で除外反例を構成する形式言語文が実行された場合にその事実を(計算機のメモリ等に)記録するための処理を、計算機に行わせるための記述であれば、任意の形式の記述が形式言語仕様記述に挿入されてよい。   In the embodiment described above, in order to record the execution of the formal language sentence constituting the exclusion counterexample, a trace array is defined, and when the formal language sentence constituting the exclusion counterexample is executed, the trace array Processing to record the effect (trace information creation processing) has been inserted into the formal language specification description. However, the method for recording the trace information is not limited to this. If a formal language sentence that constitutes an exclusion counterexample is executed in the order described in the exclusion counterexample, if it is a description that causes the computer to perform processing for recording the fact (in a computer memory or the like), Any format description may be inserted into the formal language specification description.

また、実施例1では、偽反例除外支援装置が自然言語文挿入部104と言語間対応関係保持部105を有している例を説明したが、実施例1に係る偽反例除外支援装置は必ずしも、自然言語文挿入部104と言語間対応関係保持部105を有していなくてもよい。   In the first embodiment, the example in which the counterfeit example exclusion support apparatus includes the natural language sentence insertion unit 104 and the inter-language correspondence holding unit 105 has been described. However, the counterfeit example exclusion support apparatus according to the first embodiment is not necessarily limited. The natural language sentence insertion unit 104 and the inter-language correspondence holding unit 105 may not be provided.

また、実施例1では除外反例作成部110を有する偽反例除外支援装置について説明し、実施例2では除外反例作成部110に代えて自然言語反例作成部108及び自然言語反例向け除外反例作成部114を備える偽反例除外支援装置について説明した。ただし別の実施形態として、偽反例除外支援装置が、自然言語反例作成部108及び自然言語反例向け除外反例作成部114と、除外反例作成部110の両方を備える構成もあり得る。   Further, in the first embodiment, a false counterexample exclusion support apparatus having an exclusion counterexample creation unit 110 will be described. In the second embodiment, a natural language counterexample creation unit 108 and a natural language counterexample exception counterexample creation unit 114 instead of the exclusion counterexample creation unit 110 will be described. A counterfeit example exclusion support apparatus including the above has been described. However, as another embodiment, there may be a configuration in which the counterfeit example exclusion support device includes both the natural language counterexample creation unit 108, the natural language counterexample exception counterexample creation unit 114, and the exclusion counterexample creation unit 110.

この場合、偽反例除外支援装置はユーザに、形式言語文で記述された除外反例を作成するか、あるいは自然言語で記述された除外反例を作成するか、選択させるとよい。ユーザが形式言語文で記述された除外反例を作成することを選択した場合、偽反例除外支援装置は実施例1で説明した処理を行うことで形式言語仕様記述と検証性質記述の書き換えを行うとよい。そしてユーザが自然言語文で記述された除外反例を作成することを選択した場合、偽反例除外支援装置は実施例2で説明したように、自然言語反例向け除外反例作成部114によって除外反例を生成し、それを用いて形式言語仕様記述と検証性質記述の書き換絵を行うとよい。   In this case, the counterfeit example exclusion support device may allow the user to select whether to create an exclusion counterexample described in a formal language sentence or to create an exclusion counterexample described in a natural language. When the user chooses to create an exclusion counterexample described in a formal language sentence, the false counterexample exclusion support apparatus performs the processing described in the first embodiment to rewrite the formal language specification description and the verification property description. Good. When the user chooses to create an exclusion counterexample described in a natural language sentence, the false counterexample exclusion support apparatus generates an exclusion counterexample by the natural language counterexample exclusion counterexample creation unit 114 as described in the second embodiment. It is better to rewrite the formal language specification description and verification property description using it.

101:編集部、102:検証性質保持部、103:形式言語仕様記述保持部、104:自然言語文挿入部、105:言語間対応関係保持部、106:検証部、107:反例保持部、108:自然言語反例作成部、109:自然言語反例保持部、110:除外反例作成部、111:除外反例保持部、112:形式言語仕様記述更新部、113:検証性質更新部、114:自然言語反例向け除外反例作成部   101: Editing unit 102: Verification property holding unit 103: Formal language specification description holding unit 104: Natural language sentence insertion unit 105: Interlanguage correspondence holding unit 106: Verification unit 107: Counterexample holding unit 108 : Natural language counterexample creation unit, 109: natural language counterexample storage unit, 110: exclusion counterexample creation unit, 111: exclusion counterexample storage unit, 112: formal language specification description update unit, 113: verification property update unit, 114: natural language counterexample Anti-example creation section

Claims (15)

システムの動作仕様を記述した1以上の形式言語文から成る形式言語仕様記述の更新処理を行う、形式言語仕様記述更新部と、
前記動作仕様が満たすべき条件である検証性質を形式言語で記述した検証性質記述の更新処理を行う検証性質更新部と、を有し、
前記形式言語仕様記述更新部は、前記動作仕様が前記検証性質を満たさない場合の前記形式言語仕様記述の実行系列のうちユーザから選択された実行系列を表す除外反例に基づいて、
前記形式言語仕様記述を構成する前記形式言語文の実行の過程で前記除外反例に含まれる前記形式言語文が実行された時に、前記形式言語文が実行されたことを時系列で記録するための処理を前記形式言語で記述した、トレース挿入用記述を作成し、
前記トレース挿入用記述を前記形式言語仕様記述に挿入することで、前記形式言語仕様記述を更新し、
前記検証性質更新部は前記トレース挿入用記述及び前記除外反例を用いて、
前記検証性質記述を、「前記検証性質が成立しなければ、前記除外反例の示す順序で前記形式言語仕様記述を構成する前記形式言語文が実行された」という性質の記述に書き換える、
システム仕様検証支援装置。
A formal language specification description update unit for performing a process of updating a formal language specification description including one or more formal language statements describing system operation specifications;
A verification property update unit that performs update processing of a verification property description in which a verification property that is a condition to be satisfied by the operation specification is described in a formal language,
The formal language specification description updating unit, based on an exclusion counterexample representing an execution sequence selected from a user among execution sequences of the formal language specification description when the operation specification does not satisfy the verification property,
When the formal language sentence included in the exclusion counterexample is executed in the process of executing the formal language sentence constituting the formal language specification description, the fact that the formal language sentence is executed is recorded in time series. Create a trace insertion description that describes the process in the formal language,
By updating the formal language specification description by inserting the trace insertion description into the formal language specification description,
The verification property update unit uses the trace insertion description and the exclusion counterexample,
Rewriting the verification property description to a description of a property that “if the verification property does not hold, the formal language sentence constituting the formal language specification description was executed in the order indicated by the exclusion counterexample”;
System specification verification support device.
前記除外反例は、
前記形式言語仕様記述に含まれる形式言語文と、前記形式言語文の前記形式言語仕様記述内の行番号との組み合わせである除外反例文を、1以上含む、
請求項1に記載のシステム仕様検証支援装置。
The exclusion counterexample is
Including one or more excluded example sentences that are combinations of formal language sentences included in the formal language specification description and line numbers in the formal language specification description of the formal language sentence;
The system specification verification support apparatus according to claim 1.
前記トレース挿入用記述は、
前記除外反例文の実行を記録するためのトレース配列の定義と、
前記除外反例文毎に定められた定数の定義と、
前記除外反例文に含まれる前記形式言語文が実行された時、前記トレース配列に前記除外反例文を表す定数を代入する処理と、
を含む、請求項2に記載のシステム仕様検証支援装置。
The trace insertion description is:
A trace array definition for recording the execution of the excluded anti-example sentence;
Definition of constants defined for each of the excluded anti-example sentences;
When the formal language sentence included in the excluded example sentence is executed, a process of assigning a constant representing the excluded example sentence to the trace array;
The system specification verification support apparatus according to claim 2, comprising:
前記システム仕様検証支援装置はさらに、
前記形式言語仕様記述と前記検証性質記述を入力として受け付けて、前記形式言語仕様記述に記述された前記動作仕様の検証を行い、前記動作仕様が前記検証性質を満たさない場合の前記形式言語仕様記述の実行系列を反例として出力する検証部を有する、
請求項2または3に記載のシステム仕様検証支援装置。
The system specification verification support device further includes:
The formal language specification description and the verification property description are received as input, the operation specification described in the formal language specification description is verified, and the formal language specification description when the operation specification does not satisfy the verification property A verification unit that outputs the execution sequence of
The system specification verification support apparatus according to claim 2 or 3.
前記システム仕様検証支援装置は、
前記検証部の出力した前記反例を用いて前記除外反例を作成する除外反例作成部を、
さらに有する、請求項4に記載のシステム仕様検証支援装置。
The system specification verification support device includes:
An exclusion counterexample creation unit that creates the exclusion counterexample using the counterexample output by the verification unit,
The system specification verification support apparatus according to claim 4, further comprising:
前記除外反例作成部は、前記反例に含まれる1以上の形式言語文に対する編集入力を受け付けることで、前記反例に含まれる1以上の形式言語文を任意の順に組み合わせた実行系列を、前記除外反例として作成する、
請求項5に記載のシステム仕様検証支援装置。
The exclusion counterexample creating unit accepts an edit input for one or more formal language sentences included in the counterexample, and thereby executes an execution sequence in which one or more formal language sentences included in the counterexample are combined in an arbitrary order. Create as,
The system specification verification support apparatus according to claim 5.
前記システム仕様検証支援装置はさらに、
前記形式言語仕様記述を構成する形式言語文の意味を説明する自然言語文の入力を受け付けて、前記検証部が前記反例を出力する際に、前記実行系列とともに前記自然言語文が出力されるように前記形式言語仕様記述を更新する自然言語文挿入部と、
前記反例から、前記自然言語文を抽出することで、自然言語反例を作成する自然言語反例作成部と、
前記自然言語反例から前記除外反例を作成する自然言語反例向け除外反例作成部、
を有する、請求項4に記載のシステム仕様検証支援装置。
The system specification verification support device further includes:
When the input of the natural language sentence explaining the meaning of the formal language sentence constituting the formal language specification description is received and the verification unit outputs the counterexample, the natural language sentence is output together with the execution sequence. A natural language sentence insertion unit for updating the formal language specification description,
A natural language counterexample creating unit that creates a natural language counterexample by extracting the natural language sentence from the counterexample;
An exclusion counterexample creation unit for a natural language counterexample that creates the exclusion counterexample from the natural language counterexample,
The system specification verification support apparatus according to claim 4, comprising:
前記自然言語反例向け除外反例作成部は、前記自然言語反例を構成する自然言語文に対する編集入力を受け付け、前記自然言語文を任意に組み合わせた自然言語の実行系列を前記自然言語反例として作成する、
請求項7に記載のシステム仕様検証支援装置。
The natural language counterexample excluding counterexample creating unit accepts an edit input for a natural language sentence constituting the natural language counterexample, and creates an execution sequence of a natural language arbitrarily combining the natural language sentences as the natural language counterexample.
The system specification verification support apparatus according to claim 7.
システムの動作仕様を記述した1以上の形式言語文から成る形式言語仕様記述の更新処理を行う、形式言語仕様記述更新部と、
前記動作仕様が満たすべき条件である検証性質を形式言語で記述した検証性質記述の更新処理を行う検証性質更新部と、を有する計算機が実行する、システム仕様検証支援方法であって、
前記計算機が、
前記動作仕様が前記検証性質を満たさない場合の前記形式言語仕様記述の実行系列のうちユーザから選択された実行系列を表す除外反例に基づいて、
前記形式言語仕様記述を構成する前記形式言語文の実行の過程で前記除外反例に含まれる前記形式言語文が実行された時に、前記形式言語文が実行されたことを時系列で記録するための処理を前記形式言語で記述した、トレース挿入用記述を作成し、前記トレース挿入用記述を前記形式言語仕様記述に挿入することで、前記形式言語仕様記述を更新する工程と、
前記トレース挿入用記述及び前記除外反例を用いて、前記検証性質記述を、「前記検証性質が成立しなければ、前記除外反例の示す順序で前記形式言語仕様記述を構成する前記形式言語文が実行された」という性質の記述に書き換える工程と、
を実行する、システム仕様検証支援方法。
A formal language specification description update unit for performing a process of updating a formal language specification description including one or more formal language statements describing system operation specifications;
A verification property update unit that performs a verification property update unit that performs a verification property description update process in which a verification property that is a condition to be satisfied by the operation specification is described in a formal language;
The calculator is
Based on an exclusion counterexample representing an execution sequence selected from a user among execution sequences of the formal language specification description when the operation specification does not satisfy the verification property,
When the formal language sentence included in the exclusion counterexample is executed in the process of executing the formal language sentence constituting the formal language specification description, the fact that the formal language sentence is executed is recorded in time series. Creating a trace insertion description describing the processing in the formal language, and updating the formal language specification description by inserting the trace insertion description into the formal language specification description;
Using the trace insertion description and the exclusion counterexample, the verification property description is executed as follows: “If the verification property does not hold, the formal language sentence constituting the formal language specification description is executed in the order indicated by the exclusion counterexample. The process of rewriting the description of the property "
System specification verification support method to execute.
前記除外反例は、前記形式言語仕様記述に含まれる形式言語文と、前記形式言語文の前記形式言語仕様記述内の行番号との組み合わせである除外反例文を、1以上含み、
前記トレース挿入用記述は、
前記除外反例文の実行を記録するためのトレース配列の定義と、
前記除外反例文毎に定められた定数の定義と、
前記除外反例文に含まれる前記形式言語文が実行された時、前記トレース配列に前記除外反例文を表す定数を代入する処理と、
を含む、請求項9に記載のシステム仕様検証支援方法。
The exclusion counterexample includes one or more exclusion counterexamples that are a combination of a formal language sentence included in the formal language specification description and a line number in the formal language specification description of the formal language sentence,
The trace insertion description is:
A trace array definition for recording the execution of the excluded anti-example sentence;
Definition of constants defined for each of the excluded anti-example sentences;
When the formal language sentence included in the excluded example sentence is executed, a process of assigning a constant representing the excluded example sentence to the trace array;
The system specification verification support method according to claim 9, comprising:
前記形式言語仕様記述を更新する工程の前に、
前記形式言語仕様記述と前記検証性質記述を入力として受け付けて、前記形式言語仕様記述に記述された前記動作仕様の検証を行い、前記動作仕様が前記検証性質を満たさない場合の前記形式言語仕様記述の実行系列を反例として出力する工程を実行する、
請求項9または10に記載のシステム仕様検証支援方法。
Before the process of updating the formal language specification description,
The formal language specification description and the verification property description are received as input, the operation specification described in the formal language specification description is verified, and the formal language specification description when the operation specification does not satisfy the verification property Execute the process of outputting the execution sequence of as a counter example,
The system specification verification support method according to claim 9 or 10.
前記反例を用いて前記除外反例を作成する工程をさらに有する、
請求項11に記載のシステム仕様検証支援方法。
The method further includes the step of creating the exclusion counterexample using the counterexample.
The system specification verification support method according to claim 11.
前記除外反例を作成する工程では、前記反例に含まれる1以上の形式言語文に対する編集入力を受け付けることで、前記反例に含まれる1以上の形式言語文を任意の順に組み合わせた実行系列を、前記除外反例として作成する、
請求項12に記載のシステム仕様検証支援方法。
In the step of creating the exclusion counterexample, an execution sequence in which one or more formal language sentences included in the counterexample are combined in an arbitrary order by receiving an edit input for one or more formal language sentences included in the counterexample, Create as a negative counterexample,
The system specification verification support method according to claim 12.
前記形式言語仕様記述を構成する形式言語文の意味を説明する自然言語文の入力を受け付けて、前記動作仕様が前記検証性質を満たさない場合の前記形式言語仕様記述の実行系列を出力する工程において、前記実行系列とともに前記自然言語文が出力されるように前記形式言語仕様記述を更新する工程と、
前記反例から、前記自然言語文を抽出することで、自然言語反例を作成する工程と、
前記自然言語反例から前記除外反例を作成する工程と、
を実行する、請求項11に記載のシステム仕様検証支援方法。
In the step of receiving an input of a natural language sentence explaining the meaning of a formal language sentence constituting the formal language specification description and outputting an execution sequence of the formal language specification description when the operation specification does not satisfy the verification property Updating the formal language specification description so that the natural language sentence is output together with the execution sequence;
A step of creating a natural language counterexample by extracting the natural language sentence from the counterexample;
Creating the exclusion counterexample from the natural language counterexample;
The system specification verification support method according to claim 11, wherein:
前記自然言語反例を作成する工程では、前記自然言語反例を構成する自然言語文に対する編集入力を受け付け、前記自然言語文を任意に組み合わせた自然言語の実行系列を前記自然言語反例として作成する、
請求項14に記載のシステム仕様検証支援方法。
In the step of creating the natural language counterexample, an edit input for the natural language sentence constituting the natural language counterexample is accepted, and a natural language execution sequence arbitrarily combining the natural language sentences is created as the natural language counterexample.
The system specification verification support method according to claim 14.
JP2016084183A 2016-04-20 2016-04-20 System specification verification support apparatus and system specification verification support method Active JP6556091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016084183A JP6556091B2 (en) 2016-04-20 2016-04-20 System specification verification support apparatus and system specification verification support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016084183A JP6556091B2 (en) 2016-04-20 2016-04-20 System specification verification support apparatus and system specification verification support method

Publications (2)

Publication Number Publication Date
JP2017194812A JP2017194812A (en) 2017-10-26
JP6556091B2 true JP6556091B2 (en) 2019-08-07

Family

ID=60155426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016084183A Active JP6556091B2 (en) 2016-04-20 2016-04-20 System specification verification support apparatus and system specification verification support method

Country Status (1)

Country Link
JP (1) JP6556091B2 (en)

Also Published As

Publication number Publication date
JP2017194812A (en) 2017-10-26

Similar Documents

Publication Publication Date Title
JP4148527B2 (en) Functional test script generator
JP4667386B2 (en) Business model diagram creation support program, business model diagram creation support method, and business model diagram creation support device
CN107341102B (en) Test case file generation method and device
US20060173901A1 (en) Methods for merging files and related systems
JP2010003008A (en) Detection program, detection device, and detection method
JP2012150535A (en) Program verification method and program verification program
CN107783766A (en) The method and apparatus cleared up the file of application program
JP5460629B2 (en) Tabular software specification creation support method and apparatus
JP4888790B2 (en) Contract definition function verification apparatus, method and program thereof
JP6556091B2 (en) System specification verification support apparatus and system specification verification support method
US20060173884A1 (en) Methods for merging files and related systems
US8572005B2 (en) Representation of a set of numeric values in a computerized environment
JP2005276040A (en) Degrade confirming examining method and system, and program for the same
JP5578625B2 (en) Program analysis apparatus, program analysis method, and program
JP6748357B2 (en) Analysis device, analysis program, and analysis method
JP5487078B2 (en) Software asset management method and apparatus
JP2011204069A (en) Testing method, and automatic test specification and test data generation apparatus
JP5504212B2 (en) Test case automatic generation system, test case automatic generation method, and test case automatic generation program
CN112035367B (en) Method and system for checking workflow correctness of big data platform
JP5343840B2 (en) Program analysis apparatus and analysis method
JP6390217B2 (en) Software change program, software change device, and software change method
JP6062735B2 (en) Software development support device, software development support method, software development support program
JP2014021686A (en) Test data generation device, program and method
JP6012414B2 (en) Information processing apparatus, information processing method, and program
JP6954806B2 (en) Defect detection device and defect detection method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190612

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: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190709

R150 Certificate of patent or registration of utility model

Ref document number: 6556091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150