Python 数组作为z3定点解算器中关系的参数

Python 数组作为z3定点解算器中关系的参数,python,z3,smt,z3py,z3-fixedpoint,Python,Z3,Smt,Z3py,Z3 Fixedpoint,我使用数组作为z3定点解算器中关系的参数。我试图在证书中获取满足查询的数组值。当我在z3上运行它时,它会抛出一个错误,在A(#1、#0、#3)中声明未解释的“a1” 为什么阵列被视为不奇怪的?这是否意味着未解释的函数不能用作定点解算器中关系的参数 (declare-rel A (Int Int (Array Int Int))) (declare-rel q1 (Int Int (Array Int Int))) (declare-const a1 (Array Int Int)) (decl

我使用数组作为z3定点解算器中关系的参数。我试图在证书中获取满足查询的数组值。当我在z3上运行它时,它会抛出一个错误,在A(#1、#0、#3)中声明未解释的“a1”

为什么阵列被视为不奇怪的?这是否意味着未解释的函数不能用作定点解算器中关系的参数

(declare-rel A (Int Int (Array Int Int)))
(declare-rel q1 (Int Int  (Array Int Int)))
(declare-const a1 (Array Int Int))
(declare-var a Int) 
(declare-var b Int)
(declare-var i Int)

(rule (=> (A (+ a 1) b (store a1 i 2)) (A a b a1)))

(rule (=> (= a b) (A a b a1)))

(rule (=> (and (A a b a1) (= a 0) (= b 1)) (q1 a b  a1)))

(query q1 :print-certificate true)