我在http://research.microsoft.com/en-us/um/redmond/projects/z3/ml/Z3.html浏览 Z3 的 OCaml API寻找一种方法来访问满足简单命题公式的求解器返回的模型,即。仅使用 Z3 的 SAT 部分,而不是“T”部分,例如。p 或 q 可能返回模型 p=true, q=false。我能找到的最接近的是solver_get_model,它返回一个模型。但我找不到任何访问模型的方法,因为模型类型似乎不透明。我确实看到了一个用于获取与函数符号(model_get_func_interp)关联的解释的函数,但这并不是我想要的,即使这样我也看不到如何处理返回的信息(func_interp),因为这似乎也是不透明的类型。我能看到的唯一其他方法是将模型转换为字符串。这是唯一的方法吗?
谢谢