JP6910228B2 - Automatic certification device and program - Google Patents
Automatic certification device and program Download PDFInfo
- Publication number
- JP6910228B2 JP6910228B2 JP2017137949A JP2017137949A JP6910228B2 JP 6910228 B2 JP6910228 B2 JP 6910228B2 JP 2017137949 A JP2017137949 A JP 2017137949A JP 2017137949 A JP2017137949 A JP 2017137949A JP 6910228 B2 JP6910228 B2 JP 6910228B2
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- coefficients
- solver
- trial
- verification
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は、自動証明装置、及びプログラムに関する。 The present invention relates to an automated theorem proving device and a program.
近年、大規模集積回路(LSI)等の、ハードウェアの設計や検証、ソフトウェアプログラムの検証等において、人為的介入なしに自動で推論を行う自動証明装置の利用が検討されている。例えば、非特許文献2には、ハードウェア設計を、クレイグ補間を用いた方法で検証を行うことで、検証可能な対象を広げることができることが開示されている。
In recent years, in the design and verification of hardware such as large-scale integrated circuits (LSIs), verification of software programs, etc., the use of an automated theorem proving device that automatically infers without human intervention has been studied. For example, Non-Patent
こうした研究を受けて、与えられた証明対象に係るクレイグ補間を表す多項式を生成して出力するソルバーが開発されている(例えば非特許文献1)。このようなソルバーにおいては、多項式の係数が、数値解析により得られているので、一般に簡潔な整数比としては表現されない。また、当該係数には数値誤差を含む。 In response to such research, a solver that generates and outputs a polynomial representing Craig interpolation related to a given proof object has been developed (for example, Non-Patent Document 1). In such a solver, since the coefficients of the polynomial are obtained by numerical analysis, they are generally not expressed as a concise integer ratio. In addition, the coefficient includes a numerical error.
このように従来の技術では、多項式の係数が、一般に簡潔な整数比としては表現されないうえ、数値誤差を含むため、得られた補間に対応する現実のハードウェア設計やプログラムの動作等の証明対象がどのようなものであるか、例えばプログラムの動作検証であれば、どのようなプログラムの動作状態を表すものであるかを解釈することが容易でなく、また、動作検証等の自動化処理の際に障害となり得るという問題点があった。 As described above, in the conventional technique, the coefficient of the polynomial is not generally expressed as a simple integer ratio and includes a numerical error. Therefore, the actual hardware design corresponding to the obtained interpolation and the operation of the program are to be proved. It is not easy to interpret what kind of program is, for example, in the case of program operation verification, what kind of program operation state is represented, and in the case of automated processing such as operation verification. There was a problem that it could be an obstacle.
本発明は上記実情に鑑みて為されたもので、得られた補間に対応する現実の証明対象の解釈を容易化できる自動証明装置及びプログラムを提供することを、その目的の一つとする。 The present invention has been made in view of the above circumstances, and one of its objects is to provide an automatic proof device and a program capable of facilitating the interpretation of an actual proof object corresponding to the obtained interpolation.
上記従来例の問題点を解決するための本発明は、自動証明装置であって、与えられた証明対象に係るクレイグ補間を表す多項式を生成して出力するソルバーからの入力を受け入れる手段と、前記受け入れた多項式に含まれる係数の比が、整数の比となり、かつ各係数に対応する値がより小さい値となるよう近似した近似係数を、複数求める係数演算手段と、前記複数求められた近似係数のうちから、予め定めた方法で決定された順に近似係数を選択し、前記受け入れた多項式の係数を当該選択した近似係数に置き換えた試行多項式を生成し、当該試行多項式が、前記クレイグ補間を表す多項式として成立するかを検証する検証手段と、前記検証により、前記求めたいずれかの近似係数に基づく前記試行多項式が、前記クレイグ補間を表す多項式として成立すると、前記検証手段により判断されたときに、当該近似係数を、解として生成する生成手段と、を含み、前記生成手段は、前記求めたいずれかの近似係数に基づく前記試行多項式が、いずれも前記クレイグ補間を表す多項式として成立しないとして前記検証手段により判断されたときには、エラーが発生したものとして所定の処理を実行することとしたものである。 The present invention for solving the problems of the above-mentioned conventional example is an automatic proof device, which is a means for receiving an input from a solver that generates and outputs a polynomial representing Craig approximation related to a given proof target, and the above-mentioned. A plurality of approximated coefficient calculation means for obtaining a plurality of approximate coefficients such that the ratio of the coefficients included in the accepted polynomial is an integer ratio and the value corresponding to each coefficient is a smaller value, and the plurality of obtained approximate coefficients. Approximation coefficients are selected from among them in the order determined by a predetermined method, a trial polynomial is generated in which the coefficients of the accepted polynomial are replaced with the selected approximation coefficients, and the trial polynomial represents the Craig interpolation. When it is determined by the verification means that the verification means for verifying whether or not it is established as a polynomial and the trial polynomial based on any of the obtained approximation coefficients by the verification are established as a polynomial representing the Craig interpolation. , A generation means for generating the approximation coefficient as a solution, and the generation means, assuming that the trial polynomial based on any of the obtained approximation coefficients does not hold as a polynomial representing the Craig interpolation. When it is determined by the verification means, it is assumed that an error has occurred and a predetermined process is executed.
本発明によると、得られた補間に対応する現実の証明対象の解釈を容易化できる。 According to the present invention, it is possible to facilitate the interpretation of the actual proof object corresponding to the obtained interpolation.
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る自動証明装置1は、図1に例示するように、制御部11と、記憶部12と、操作部13と、表示部14とを含んで構成されている。
Embodiments of the present invention will be described with reference to the drawings. As illustrated in FIG. 1, the
ここで制御部11はCPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部11は、与えられた証明対象に係るクレイグ補間を表す多項式を生成して出力するソルバーからの入力を受け入れ、当該受け入れた多項式に含まれる係数の比が、整数の比となり、かつ、各係数に対応する値がより小さい値となるように、各係数の値を近似した近似係数の組を、複数求める。
Here, the
なお、ここで補間は、論理式における補間をいい、
XかつYが充足不能な式であるときに、
XならばZが恒真式であり、
ZかつYが充足不能な式であり、かつ、
Zに現れる変数がX,Yの双方に現れる、という場合のZが「XならばY」のクレイグ補間と呼ばれるものである。
Note that interpolation here refers to interpolation in a logical expression.
When X and Y are unsatisfiable expressions
If X, then Z is tautological,
Z and Y are unsatisfiable expressions, and
When the variable appearing in Z appears in both X and Y, it is called Craig interpolation in which Z is "X then Y".
またこの制御部11は、当該複数求められた近似係数の組のうちから、予め定めた方法で決定された順に近似係数の組を選択する。一例として、当該近似係数の絶対値の和が小さいものから順に選択することとすればよい(1ノルムが最小のものからの順)。また別の例では、各係数の二乗和が最小のものから順(2ノルムが最小のものからの順)、あるいは、係数の絶対値の最大値が最小のものから順(無限大ノルムが最小のものからの順)に選択することとしてもよい。
Further, the
制御部11は、受け入れた多項式の係数のそれぞれを、当該選択した近似係数の組に含まれる対応する値に置き換えた試行多項式を生成し、当該試行多項式が、クレイグ補間を表す多項式として成立するかを検証する。制御部11は、この検証の処理により、求めたいずれかの近似係数に基づく試行多項式が、クレイグ補間を表す多項式として成立していると判断すると、当該近似係数を、解として所定の処理に供する。
The
また制御部11は、上記求めたいずれかの近似係数に基づく試行多項式のいずれもがクレイグ補間を表す多項式として成立しないと判断したときには、エラーが発生したものとして所定の処理を実行する。この制御部11の詳しい動作については後に述べる。
Further, when it is determined that none of the trial polynomials based on any of the obtained approximation coefficients is established as a polynomial representing Craig interpolation, the
記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部12に複写されたものであってもよい。本実施の形態において、この記憶部12は、また、制御部11のワークメモリとしても動作する。
The
操作部13は、キーボードやマウス等であり、ユーザの指示入力を受け入れて、当該指示入力の内容を制御部11に出力する。表示部14は、ディスプレイ等であり、制御部11から入力される指示に従い、情報を表示出力する。
The
ここで制御部11の動作について説明する。本実施の形態では、この制御部11は、記憶部12に格納されたプログラムを実行することにより、機能的に、図2に例示するように、ソルバー出力受入部21と、係数演算部22と、検証処理部23と、解生成部24と、出力部25とを含んで構成される。また本実施の形態では、図2に示すように、この制御部11が、与えられた証明対象に係るクレイグ補間を表す多項式を生成して出力するソルバーとしても動作し、ソルバー部31をさらに含んでもよい。もっとも、このソルバー部31は、他のコンピュータによって実現されてもよく、その場合は、後に説明するソルバー出力受入部21は、当該ソルバーとして機能する他のコンピュータから、ソルバーの出力を受け入れることとなる。
Here, the operation of the
本実施の形態の一例に係るソルバー部31は、証明対象として与えられた一対の制約T,T′のクレイグ補間を生成する問題を、半正定値計画問題へ変換する。
The
すなわち、ソルバー部31は、証明対象に係る制約T,T′のそれぞれを、任意の変数値に対して
0以上である少なくとも一つの多項式f、
0より大である少なくとも一つの多項式g、
0に等しい少なくとも一つの多項式h
のいずれかを少なくとも一つ含む表現
At least one polynomial g, greater than 0,
At least one polynomial h equal to 0
Expressions containing at least one of
なお、個々の多項式f1,f2,…fs,g1,g2…,gt,h1,h2…hu,f′1,f′2…,f′s′,g′1,g′2…,g′t′,h′1,h′2…h′u′は予め、制約T,T′に共通に現れる変数Xの多項式として任意に定めておく。
In addition, the individual polynomial f 1, f 2, ... f s,
このように、証明対象に係る制約T,T′のそれぞれを、任意の変数値に対して
0以上である少なくとも一つの多項式f、
0より大である少なくとも一つの多項式g、
0に等しい少なくとも一つの多項式h
のいずれかを少なくとも一つ含む表現で表しておき、ソルバーにて数値解を演算することで、非特許文献1に開示された技術のように、証明対象に係る制約を、0に等しくない多項式を含む多項式の集合で記述する場合に比べ、補間を得やすくなる。
In this way, at least one polynomial f, in which each of the constraints T and T'related to the proof target is 0 or more with respect to an arbitrary variable value,
At least one polynomial g, greater than 0,
At least one polynomial h equal to 0
By expressing a numerical solution that includes at least one of It is easier to obtain interpolation than when describing with a set of polynomials including.
具体的にこのソルバー部31は、図3に例示するように、不等式を用いた半代数系(SAS<:Semialgebraic System with inequalities)にて表現された制約T,T′及び、最大次数(degree)を表す自然数bを受け入れる(S1)。
Specifically, as illustrated in FIG. 3, the
そしてソルバー部31は、次の数式を満足する、ベクトルα,α′,β,β′,γの数値解を見いだす(S2)。すなわち、
またここで、ベクトルα,α′,β,β′,γ間には、次の制約が規定されているものとする。
このベクトルα,α′,β,β′,γを得る処理は、記号的解法(例えば量化子除去(quantifier elimination)など)を用いてもよいが、ここでは半正定値計画問題として緩和でき、この場合は広く知られた半正定値計画問題ソルバーを用いることができる。 The process of obtaining the vectors α, α', β, β', and γ may use a symbolic solution (for example, quantifier elimination), but here it can be relaxed as a semidefinite programming problem. In this case, the well-known semidefinite programming problem solver can be used.
ここでC(0)≦bは、次数b以下のSOS(Sum of Squares:複数の多項式p1,p2…pNの二乗和、つまりp1 2+p2 2+…+pN 2)を意味する。また、σ(b)は総和がb+1以下であるような、t個の自然数の組Ntの集合{(k1,k2,…kt)∈Nt|k1+k2+…+kt≦b+1}を意味する。 Here, C (0) ≤ b means SOS (Sum of Squares: multiple polynomials p 1 , p 2 ... p N squared sum, that is, p 1 2 + p 2 2 + ... + p N 2 ) of degree b or less. do. Further, σ (b) is a set of t sets of natural numbers N t such that the sum is b + 1 or less {(k 1 , k 2 , ... k t ) ∈ N t | k 1 + k 2 + ... + k t. It means ≦ b + 1}.
ソルバー部31は、解(数値解)であるベクトルα,α′,β,β′,γが求められたか否かを調べ(S3)、解が見いだせない場合(S3:No)は、ソルバー部31はエラーとして処理を停止する(S4)。この場合は、後に説明するソルバー出力受入部21は、何らの入力を受け入れないこととなる。
The
また処理S3において解が見いだせたとき(S3:Yes)は、ソルバー部31は、
そして不等式
またソルバー出力受入部21は、ソルバー部31など、ソルバーが出力する解の入力を受け入れる。
Further, the solver
係数演算部22は、ソルバー出力受入部21が受け入れた解に含まれる変数Xの係数の整数比を少なくとも一つ(好適には複数)求める。本実施の形態の一例では、この係数演算部22は、連分数展開の方法を用いて、この整数比を得る。すなわち係数演算部22は、ソルバー出力受入部21が受け入れた解に含まれる変数Xのすべての係数が自然数となるよう、受け入れた解を10n倍する。ここでのnは、すべての係数が自然数となる最小の正の整数とする。
The
係数演算部22は、こうして得られた各係数x1,x2…xn(いずれも自然数であって、少なくとも1つは0でない)について、次の処理(連分数展開(CFE)処理と呼ぶ)を実行する。
The
図4に示すように、まず、係数演算部22は、深さd(dは正の整数)の指定を受け入れる(S11)。なお、深さdが指定されていないときはd=1とする。また係数演算部22は、係数x1,x2…xnのうち最小の係数をxpとして、係数x1,x2…xnのそれぞれを、このxpで除した数を超えない最大の整数の組
係数演算部22は、dが「1」であるか否かを調べ(S13)、dが「1」ならば(S13:Yes)、上記組aの最大公約数を求めて、aの各成分の値をこの最大公約数gcd(a)で除した値の組を求める(S14):
係数演算部22は、ここで求めたy(各成分の値の比が、求める整数比となる)を返り値として記憶部12に格納して(S15)、リターンする(再帰的に呼び出されている場合は呼び出し元の処理に戻り、最初に呼び出されていた場合は処理を終了する)。
The
また、処理S13でdが「1」でなければ、係数を
x1−a1xp,…,xp−1,ap−1xp,xp,xp+1−ap+1xp+1,…,xn−anxp
とし、深さdを(d−1)として(S16)、CFE処理を再帰的に(処理S11から)実行し、その返り値をr′とする(S17)。
If d is not "1" in the process S13, the coefficients are set to x 1 −a 1 x p , ..., x p-1 , a p-1 x p , x p , x p + 1 −a p + 1 x p + 1 , ... , X n − a n x p
Let the depth d be (d-1) (S16), the CFE process be recursively executed (from process S11), and the return value be r'(S17).
また係数演算部22は、
なお、ここまでの例によって得られる近似係数は、各係数に対応する値が整数となるが、当該整数として求められた近似係数を、さらに共通の整数dで除した有理数としてもよい。すなわち、近似係数は整数であることに限られない。 In the approximation coefficients obtained by the examples so far, the value corresponding to each coefficient is an integer, but the approximation coefficient obtained as the integer may be further divided by a common integer d to be a rational number. That is, the approximation coefficient is not limited to an integer.
検証処理部23は、ソルバー出力受入部21が受け入れた解である多項式の係数を、係数演算部22が記憶部12に格納した各整数比の各値を係数(近似係数)で置き換えた試行多項式を生成する。そして検証処理部23は、生成した試行多項式のうち、クレイグ補間を表す多項式として成立するか否かを検証する。この検証では、T′に対応する多項式の値域と、試行多項式を、ソルバー出力受入部21が受け入れた解の多項式で置き換えたときの値域とを比較し、重なり合わない場合に、クレイグ補間を表す多項式として成立していると判断することとなる。
The
検証処理部23は、クレイグ補間を表す多項式として成立している試行多項式であって、係数となっている整数が最も小さいもの(いずれかの変数に着目し、当該変数の係数が最小であるもの、あるいはすべての係数の和が最小である試行多項式)を解生成部24に出力する。
The
なお、この検証処理部23は、係数演算部22が記憶部12に格納した各整数比を用いて生成した試行多項式のいずれもがクレイグ補間を表す多項式として成立していないと判断すると、係数演算部22が、現在の整数比を得るために利用した深さdの値をインクリメント(「1」ないしそれ以上の整数値だけインクリメント)して、係数演算部22に対して、当該インクリメントした後の深さdを出力し、再度、整数比を生成させることとしてもよい。なお、インクリメント後のdの値が予め定めたしきい値を超えたとき、またはインクリメントした後のdの値によっても、dのインクリメント前に得られた整数比と同じ整数比が得られた場合(収束してしまった場合)には、エラーが発生したものとして予め定めた処理を実行する。
When the
一例として検証処理部23は、上述のようにエラーが発生したと判断したときには、予め定めた処理としてソルバー出力受入部21が受け入れた解をそのまま出力するよう、出力部25に指示してもよい。
As an example, when the
解生成部24は、ソルバー出力受入部21が受け入れた解である多項式を、検証処理部23が出力した試行多項式に置き換えて、出力対象となる解を生成する。
The
出力部25は、解生成部24が生成した出力対象となる解(または検証処理部23から入力される指示によりソルバー出力受入部21が受け入れた解そのもの)を、解として表示部14に表示出力する。
The
なお、この出力部25は、解を表示部14に表示出力するほか、図示しないプリンタに出力して印刷させてもよいし、他のプログラムの入力となるようデータとして出力して、他のプログラムの処理に供してもよい。
In addition to displaying and outputting the solution to the
[動作]
本発明の実施の形態は、以上の構成を備えており、次のように動作する。すなわち本実施の形態の一例では、証明対象に係る制約T,T′のそれぞれが、任意の変数値に対して
0以上である少なくとも一つの多項式f、
0より大である少なくとも一つの多項式g、
0に等しい少なくとも一つの多項式h
のいずれかを少なくとも一つ含む表現
The embodiment of the present invention has the above configuration and operates as follows. That is, in an example of the present embodiment, at least one polynomial f in which each of the constraints T and T'related to the proof target is 0 or more with respect to an arbitrary variable value,
At least one polynomial g, greater than 0,
At least one polynomial h equal to 0
Expressions containing at least one of
一例として、制約T,T′が、
T:=(y≧x2+1)
T′:=(y≦−x2−1)
であるとする(図5を参照)と、これらの制約T,T′は同時には満足されない、つまり、T∧T′は矛盾しているから、これらT,T′に共通する変数のみを含む論理式εであって、Tならばε、かつε∧T′が矛盾するεが存在する(クレイグの補間定理)。そしてこのεがクレイグ補間となる。
As an example, the constraints T, T'are
T: = (y ≧ x 2 + 1)
T ': = (y ≦ -x 2 -1)
(See FIG. 5), these constraints T and T'are not satisfied at the same time, that is, since T∧T' is inconsistent, only variables common to these T and T'are included. There exists a formula ε that is ε if T and ε∧T'contradictory (Craig's interpolation theorem). And this ε becomes Craig interpolation.
ソルバーは、この制約T,T′からクレイグ補間εを数値解として得る。具体的に、数値解の一つは、
871.465y+348.560>0
として得られる。
The solver obtains the Craig interpolation ε as a numerical solution from the constraints T and T'. Specifically, one of the numerical solutions is
871.465y + 348.560> 0
Obtained as.
本実施の形態の自動証明装置1は、この係数871.465,348.560を連分数展開の方法によって丸め処理して近似係数を求める。ここでの例では、この丸め処理の結果として、
5,2
11,4
…といった係数が整数の比となるような、近似係数の組が得られる。
The automated
5, 2
11, 4
A set of approximate coefficients is obtained such that the coefficients such as ... are ratios of integers.
自動証明装置1は、これらの得られた近似係数の組のうち、最小の近似係数(含まれる各係数の絶対値の総和が最小のもの、すなわち1ノルムが最小のもの)から順に、もとの多項式における対応する係数に置き換えた試行多項式が、制約T,T′のクレイグ補間εとなっているか否かを調べる。
The
ここでは、自動証明装置1は、係数871.465を、対応する整数の値5に置き換え、係数348.560を、対応する整数の値2に置き換えた、試行多項式を用いた不等式
5y+2>0
が制約T,T′
T:=(y≧x2+1)
T′:=(y≦−x2−1)
に対するクレイグ補間εとなっているか否かを調べる。
Here, the automated
Is the constraint T, T'
T: = (y ≧ x 2 + 1)
T ': = (y ≦ -x 2 -1)
Check if it is Craig interpolation ε for.
ここでの例では、制約Tの表す値域y≧x2+1が、試行多項式を用いた不等式5y+2>0の値域に含まれるので、
「制約Tであれば、εである」
が成立する。
In the example here, the range y ≧ x 2 + 1 represented by the constraint T is included in the range of the inequality 5y + 2> 0 using the trial polynomial.
"If the constraint T, it is ε."
Is established.
また、試行多項式を用いた不等式5y+2>0の値域は、制約T′の表す値域y≦−x2−1と重なり合わないので、
「εと、制約T′とは矛盾する」
も成立する。
Further, since the range of inequality 5y + 2> 0 with trial polynomials are non-overlapping with the range y ≦ -x 2 -1 representing constrained T ',
"Ε and constraint T'contradiction"
Also holds.
すなわち、この試行多項式を用いた不等式5y+2>0は、上記制約T,T′のクレイグ補間となっていると判断できる。 That is, it can be determined that the inequality 5y + 2> 0 using this trial polynomial is Craig interpolation of the above constraints T and T'.
自動証明装置1は、このように、各不等式(または等式)の値域を比較することで、試行多項式がクレイグ補間となっているか否かを調べて判断する。ここでの例では、上述のように、最初に調べた試行多項式を用いた不等式5y+2>0が与えられた制約T,T′のクレイグ補間となっていると判断できるので、自動証明装置1は、この試行多項式を用いた不等式5y+2>0を解として表示部14に表示出力する。
The
この自動証明装置1によると、数値的に得られた解に比べ、簡略にされた不等式により解が示されるので、対応する現実の条件として解釈しやすい解が得られることとなる。
According to the automated
またこの自動証明装置1が出力した解を、プログラム検証または定理証明の処理システムに入力することで、プログラム検証または定理証明の処理に対して、本実施の形態の自動証明装置1の出力を供することができる。
Further, by inputting the solution output by the
[変形例(Daiの方法を採用する例)]
本実施の形態の以上の例では、ソルバー(ソルバー部31等)が、証明対象に係る制約として、任意の変数値に対して
0以上である多項式f、
0より大である多項式g、
0に等しい多項式h
のいずれかを少なくとも一つ含んで設定されるものとしたが、クレイグ補間を表す、多項式を用いた不等式あるいは等式が数値解として得られるのであれば、本実施の形態の自動証明装置1は、このソルバーを用いる例に限られず、他のソルバーを用いてもよい。
[Modification example (example of adopting Dai's method)]
In the above example of the present embodiment, the polynomial f, in which the solver (
Polynomial g, greater than 0,
Polynomial h equal to 0
However, if an inequality or an equation using a polynomial representing Craig interpolation can be obtained as a numerical solution, the automated
例えば本実施の形態において、数値解を求めるためのソルバーは、非特許文献1に示された方法を採用してもよい。この場合は、証明対象に係る制約が、任意の変数値に対して
0以上である多項式f、
0に等しくない多項式g、
0に等しい多項式h
のいずれかを少なくとも一つ含んで設定されることとなる。
For example, in the present embodiment, the solver for obtaining a numerical solution may adopt the method shown in
Polynomial g not equal to 0,
Polynomial h equal to 0
It will be set to include at least one of.
[実施形態の効果]
本実施の形態によると、数値解析された多項式を、比較的簡潔な整数比の係数で表現しなおす。これにより数値解として得られた補間に対応する現実のプログラムの動作等の証明対象への対応付けを簡易にさせることができ、利用者にとっての理解が容易になるだけでなく、自動検証にも有用となる。
[Effect of Embodiment]
According to this embodiment, the numerically analyzed polynomial is re-expressed by a relatively simple integer ratio coefficient. As a result, it is possible to easily associate the operation of the actual program corresponding to the interpolation obtained as a numerical solution with the proof target, which not only makes it easier for the user to understand, but also for automatic verification. It will be useful.
さらに、この処理に用いるソルバーとして、「0に等しくない」との制約の記述を、「0より大である」に置き換えたソルバーを用いることで、比較的多くの制約について補間を得ることができる。 Further, as the solver used for this processing, by using a solver in which the description of the constraint "not equal to 0" is replaced with "greater than 0", interpolation can be obtained for a relatively large number of constraints. ..
本発明では、種々の証明問題に対して比較的簡潔なクレイグ補間の多項式表現を出力できるので、大規模集積回路(LSI)等の、ハードウェアの設計や検証、ソフトウェアプログラムの検証等に、クレイグ補間を用いた方法を採用し、これを自動化する場合に有用である。 Since the present invention can output a relatively simple polynomial representation of Craig interpolation for various proof problems, Craig is used for hardware design and verification of large-scale integrated circuits (LSIs), software program verification, and the like. It is useful when adopting a method using interpolation and automating it.
1 自動証明装置、11 制御部、12 記憶部、13 操作部、14 表示部、21 ソルバー出力受入部、22 係数演算部、23 検証処理部、24 解生成部、25 出力部、31 ソルバー部。
1 Automatic certification device, 11 Control unit, 12 Storage unit, 13 Operation unit, 14 Display unit, 21 Solver output receiving unit, 22 Coefficient calculation unit, 23 Verification processing unit, 24 Solution generation unit, 25 Output unit, 31 Solver unit.
Claims (5)
前記受け入れた多項式に含まれる係数の比が、整数の比となり、かつ各係数に対応する値がより小さい値となるよう近似した近似係数を、複数求める係数演算手段と、
前記複数求められた近似係数のうちから、予め定めた方法で決定された順に近似係数を選択し、前記受け入れた多項式の係数を当該選択した近似係数に置き換えた試行多項式を生成し、当該試行多項式が、前記クレイグ補間を表す多項式として成立するかを検証する検証手段と、
前記検証により、前記求めたいずれかの近似係数に基づく前記試行多項式が、前記クレイグ補間を表す多項式として成立すると、前記検証手段により判断されたときに、当該近似係数を、解として生成する生成手段と、
を含み、
前記生成手段は、前記求めたいずれかの近似係数に基づく前記試行多項式が、いずれも前記クレイグ補間を表す多項式として成立しないとして前記検証手段により判断されたときには、エラーが発生したものとして所定の処理を実行する、
自動証明装置。 A means of accepting input from a solver that generates and outputs a polynomial that represents Craig interpolation for a given proof object,
A coefficient calculation means for obtaining a plurality of approximate coefficients so that the ratio of the coefficients included in the accepted polynomial is an integer ratio and the value corresponding to each coefficient is a smaller value.
From the plurality of obtained approximation coefficients, the approximation coefficients are selected in the order determined by a predetermined method, a trial polynomial in which the coefficients of the accepted polynomial are replaced with the selected approximation coefficients is generated, and the trial polynomial is generated. Is a verification means for verifying whether or not is established as a polynomial representing the Craig interpolation.
When the trial polynomial based on any of the obtained approximation coefficients is established as a polynomial representing the Craig interpolation by the verification, the generation means for generating the approximation coefficient as a solution when determined by the verification means. When,
Including
When the verification means determines that none of the trial polynomials based on any of the obtained approximation coefficients is established as a polynomial representing the Craig interpolation, the generation means determines that an error has occurred. To execute,
Automatic certification device.
前記ソルバーは、前記証明対象に係る制約が、
任意の変数値に対して
0以上である多項式f、
0より大である多項式g、
0に等しい多項式h
のいずれかを少なくとも一つ含んで設定され、
一対の制約T,T′のクレイグ補間を表す多項式を生成して出力するソルバーである自動証明装置。 The automatic certification device according to claim 1.
The solver has restrictions on the subject of certification.
Polynomial f, which is greater than or equal to 0 for any variable value,
Polynomial g, greater than 0,
Polynomial h equal to 0
Is set to include at least one of
An automated theorem proving device that is a solver that generates and outputs a polynomial that represents Craig interpolation of a pair of constraints T and T'.
前記出力される解が、プログラム検証または定理証明の処理に供される自動証明装置。 The automatic certification device according to claim 1 or 2.
An automated theorem proving device in which the output solution is subjected to program verification or theorem proving processing.
前記ソルバーは、前記証明対象に係る制約が、
任意の変数値に対して
0以上である多項式f、
0に等しくない多項式g、
0に等しい多項式h
のいずれかを少なくとも一つ含んで設定され、
一対の制約T,T′のクレイグ補間を表す多項式を生成して出力するソルバーである自動証明装置。 The automatic certification device according to claim 1.
The solver has restrictions on the subject of certification.
Polynomial f, which is greater than or equal to 0 for any variable value,
Polynomial g not equal to 0,
Polynomial h equal to 0
Is set to include at least one of
An automated theorem proving device that is a solver that generates and outputs a polynomial that represents Craig interpolation of a pair of constraints T and T'.
与えられた証明対象に係るクレイグ補間を表す多項式を生成して出力するソルバーからの入力を受け入れる手段と、
前記受け入れた多項式に含まれる係数の比が、整数の比となり、かつ各係数に対応する値がより小さい値となるよう近似した近似係数を、複数求める係数演算手段と、
前記複数求められた近似係数のうちから、予め定めた方法で決定された順に近似係数を選択し、前記受け入れた多項式の係数を当該選択した近似係数に置き換えた試行多項式を生成し、当該試行多項式が、前記クレイグ補間を表す多項式として成立するかを検証する検証手段と、
前記検証により、前記求めたいずれかの近似係数に基づく前記試行多項式が、前記クレイグ補間を表す多項式として成立すると、前記検証手段により判断されたときに、当該近似係数を解として生成し、前記求めたいずれかの近似係数に基づく前記試行多項式が、いずれも前記クレイグ補間を表す多項式として成立しないとして前記検証手段により判断されたときには、エラーが発生したものとして所定の処理を実行する生成手段と、
として機能させるプログラム。
Computer,
A means of accepting input from a solver that generates and outputs a polynomial that represents Craig interpolation for a given proof object,
A coefficient calculation means for obtaining a plurality of approximate coefficients so that the ratio of the coefficients included in the accepted polynomial is an integer ratio and the value corresponding to each coefficient is a smaller value.
From the plurality of obtained approximation coefficients, the approximation coefficients are selected in the order determined by a predetermined method, a trial polynomial in which the coefficients of the accepted polynomial are replaced with the selected approximation coefficients is generated, and the trial polynomial is generated. Is a verification means for verifying whether or not is established as a polynomial representing the Craig interpolation.
When the trial polynomial based on any of the obtained approximation coefficients is established as a polynomial representing the Craig interpolation by the verification, the approximation coefficient is generated as a solution when determined by the verification means, and the calculation is performed. When the verification means determines that none of the trial polynomials based on any of the approximation coefficients is established as a polynomial representing the Craig interpolation, a generation means for executing a predetermined process as if an error has occurred, and a generation means.
A program that functions as.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017137949A JP6910228B2 (en) | 2017-07-14 | 2017-07-14 | Automatic certification device and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017137949A JP6910228B2 (en) | 2017-07-14 | 2017-07-14 | Automatic certification device and program |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2019020966A JP2019020966A (en) | 2019-02-07 |
| JP2019020966A5 JP2019020966A5 (en) | 2020-08-06 |
| JP6910228B2 true JP6910228B2 (en) | 2021-07-28 |
Family
ID=65354484
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017137949A Expired - Fee Related JP6910228B2 (en) | 2017-07-14 | 2017-07-14 | Automatic certification device and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6910228B2 (en) |
-
2017
- 2017-07-14 JP JP2017137949A patent/JP6910228B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019020966A (en) | 2019-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Schmelzer et al. | Evaluating matrix functions for exponential integrators via Carathéodory-Fejér approximation and contour integrals | |
| Zhu et al. | Computational aspects of stochastic collocation with multifidelity models | |
| Omairey et al. | Multiscale surrogate-based framework for reliability analysis of unidirectional FRP composites | |
| US10311180B2 (en) | System and method of recovering Lagrange multipliers in modal dynamic analysis | |
| Anitescu et al. | A constraint‐stabilized time‐stepping approach for rigid multibody dynamics with joints, contact and friction | |
| CN107016155B (en) | Convergence estimation for nonlinear PDE and linear solver | |
| Ern et al. | Weighting the edge stabilization | |
| WO2018135563A1 (en) | Secure computing system, secure computing device, secure computing method, and program | |
| Niethammer et al. | A numerical stabilization framework for viscoelastic fluid flow using the finite volume method on general unstructured meshes | |
| Luengo | Gamma pseudo random number generators | |
| Jin et al. | Numerical recovery of a time-dependent potential in subdiffusion | |
| Liang et al. | Analytical solution of fractionally damped beam by Adomian decomposition method | |
| Cyranka | Existence of globally attracting fixed points of viscous Burgers equation with constant forcing. A computer assisted proof | |
| JP6910228B2 (en) | Automatic certification device and program | |
| JP5068228B2 (en) | Non-negative matrix decomposition numerical calculation method, non-negative matrix decomposition numerical calculation apparatus, program, and storage medium | |
| Feulvarch et al. | A stable P1∕ P1 finite element for finite strain von Mises elasto-plasticity | |
| Jiang et al. | A stochastic perturbation finite element-least square point interpolation method for the analysis of uncertain structural-acoustics problems with random variables | |
| JP2024155903A (en) | Systems and methods for resolving numerical instabilities - Patents.com | |
| Giuliano et al. | Almost sure local limit theorem for the Dickman distribution | |
| Huang et al. | Global strong solutions with large initial data for the Cauchy problem of the multi-dimensional compressible Navier-Stokes-Korteweg system | |
| Moore | Filter based stabilization methods for reduced order models of convection-dominated systems | |
| CN107424190B (en) | Image processing method, image processing device, computer-readable storage medium and electronic equipment | |
| Jusoh et al. | Numerical Solver of A (alpha)-stable for Stiff Ordinary Differential Equations. | |
| US11579956B2 (en) | Feasibility analysis for automatic programmatic generation of a lookup table and automatic programmatic generation of the lookup table that conforms with an error tolerance | |
| Serra-Capizzano et al. | Two-Grid Methods for Hermitian positive definite linear systems connected with an order relation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200626 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200626 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20201013 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201014 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210528 |
|
| 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: 20210615 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210706 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6910228 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |