`distinct` 関数の対応
private-yusuke opened this issue · comments
ref: http://smtlib.github.io/jSMTLIB/SMTLIBTutorial.pdf
概要
QF_UF
理論では、与えられた式すべてに inequality が成立することを主張するための関数 distinct
が事前に定義されている必要がある。
方針
nCr(n, 2) = n(n-1)/2
になるので、この個数だけ inequality の制約を生成して SMTSolver.expandLet
のように (distinct e1 e2 ...)
のところを置換するという荒技が可能そう。工夫すれば効率化できたはず