Z3将FuncInterp设为Null

时间:2019-07-07 13:37:25

标签: java z3 smt

我正在使用Z3 Java API来解析SMT文件;当我呼叫1 HResult=0x80131501 Message= Sql error: Generic SQL error. CRM ErrorCode: -2147204784 Sql ErrorCode: -2146232060 Sql Number: 7601 Source=mscorlib
StackTrace: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Microsoft.Xrm.Sdk.IOrganizationService.RetrieveMultiple(QueryBase query) at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore(QueryBase query) at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultiple(QueryBase query) at Microsoft.Xrm.Client.Services.OrganizationService.<>c__DisplayClass22.<RetrieveMultiple>b__21(IOrganizationService s) at Microsoft.Xrm.Client.Services.OrganizationService.InnerOrganizationService.UsingService[TResult](Func
时,其中s.getModel()是一个求解器,我可以按如下所示正确打印模型:

s

但是,当我尝试为(define-fun O_STUDENT () (Array Int STUDENT_TupleType) ((as const (Array Int STUDENT_TupleType)) (STUDENT_TupleType _ID__12345 _NAME__Bourikas _DEPT_uNAME__Music 29))) (define-fun O_DEPARTMENT () (Array Int DEPARTMENT_TupleType) ((as const (Array Int DEPARTMENT_TupleType)) (DEPARTMENT_TupleType _DEPT_uNAME__Music _BUILDING__BUILDING_u5 50000.0))) 数组获得FuncInterp时,我得到了O_STUDENT。我正在使用以下方法提取该值:

null

1 个答案:

答案 0 :(得分:0)

以防万一:数组有点特殊,因为有常量,但是它们的模型是函数(例如,见https://github.com/Z3Prover/z3/blob/master/src/api/java/Model.java#L88)。

模型可能不包含所有变量的赋值-如果缺少一个变量,则意味着您可以自由选择所需的任何值。如果您不满意,可以启用模型完成功能,然后Z3会为您选择。