2021/08/15 01:40 更新
QECADで限量記号消去法を試す
目次

前提知識

限量子記号消去(QE)アルゴリズムとその計算の現状

限量子記号消去アルゴリズムとその計算の現状について 佐藤洋祐

まとめ

  • 実数領域における最初のQEアルゴリズムはTaiskiによって与えられたが、計算量を考慮していないため実際にプログラムとして実装しても使い物にならない。
  • CADと呼ばれるQEアルゴリズムがMathmaticaなどで使われる実用的なアルゴリズムになる
  • CGS-QEと呼ばれる高速のアルゴリズムが存在し、多数の等式を含む一階述語論理式に対する計算に有効

CADを実際に手元で使ってみる

QEの教育用の実装が以下にあった

簡単な数式の解を求める

  • qepcadに対してechoで数式を渡して解かせる例に従った

数学IAの参考書から

  • $x^2+x-42=0$ の解は?
$ echo -e "[] \n (x) \n 1 \n [x^2+x-42=0]. \n finish" | qepcad
...略...
An equivalent quantifier-free formula:

x + 7 >= 0 /\ x - 6 <= 0 /\ [ x - 6 = 0 \/ x + 7 = 0 ]

おー、解けている

限量記号がついたFOLを渡して解かせる

ここからが本命で、$\forall$ と $\exists$ が入った式を解けないと意味がない

  • $x^2+y^2=1$ の$y$の範囲は?
$ echo -e "[] \n (x,y) \n 1 \n (Ey)[x^2+y^2=1]. \n finish" | qepcad
...略...
An equivalent quantifier-free formula:

x + 1 >= 0 /\ x - 1 <= 0