Z3返回多个元素的乐趣

Z3返回多个元素的乐趣,z3,z3py,theorem-proving,Z3,Z3py,Theorem Proving,就我所见,我可以声明一个返回多个元素的函数。假设我有一个函数x,它接收排序T并返回排序U和排序R (声明排序T) (声明排序R) (声明排序U) (宣布x(T)(U R)) 那么,当调用函数x时,我如何访问返回的元素……假设我需要断言将U传递给一个函数,将R传递给另一个函数。。这可以做到吗?您的示例不是格式良好的SMT-LIB2。它不解析。 (错误“第3行第23列:排序构造函数的参数数量无效”) 深入介绍SMT-LIB2语法和语义。Thnak you Nikolaj!!我知道它的格式不好,我很抱

就我所见,我可以声明一个返回多个元素的函数。假设我有一个函数x,它接收排序T并返回排序U和排序R

(声明排序T) (声明排序R) (声明排序U)

(宣布x(T)(U R))


那么,当调用函数x时,我如何访问返回的元素……假设我需要断言将U传递给一个函数,将R传递给另一个函数。。这可以做到吗?

您的示例不是格式良好的SMT-LIB2。它不解析。 (错误“第3行第23列:排序构造函数的参数数量无效”)
深入介绍SMT-LIB2语法和语义。

Thnak you Nikolaj!!我知道它的格式不好,我很抱歉,我应该提到的只是试图解释我想做什么的伪代码。我想说的是,如果有一个函数x接收T并返回(U R),那么有任何方法可以捕获调用x的结果(aka(U R)),然后通过单独使用它们,我是否提出了我的观点??您可以定义一个包含多个对象的数据类型,例如,按照Z3数据类型指南中对的定义()