在Isabelle / HOL函数中嵌入SMT

时间:2017-05-15 11:12:36

标签: isabelle smt theorem-proving

我需要使用一些等式推理,但我对重新定义所有基础理论不感兴趣。我的目标是使用大锤完成的现有SMT求解器。例如,假设这种平等理论与一些简单的算术,

datatype expr = Var string
              | Const nat
datatype constraint = Eq "expr * expr"  (* E1 = E2 *)

fun SAT :: "constraint list ⇒ bool" where
  "SAT L = undefined (* calling an SMT-solver here *)"

类型constraint list包含嵌入逻辑约束的约束,我希望将这些约束发送给SMT求解器以返回true(如果可能)。因此断言以下内容应该返回false

value "SAT [Eq(Var ''X1'', Var ''X2''),     (* X1 = X2*)
            Eq(Var ''X1'', Const 0),        (* X1 = 0 *)
            Eq(Var ''X2'', Const (Suc 0))]" (* X2 = 1 *)

我该如何处理?

0 个答案:

没有答案