z3 中 `str.indexof` 和 `seq.indexof` 的区别
Difference between `str.indexof` and `seq.indexof` in z3
在z3 tutorial中,str.indexof
和seq.indexof
是分开提到的。然而,在Z3 C API中,只有一个相关函数Z3_mk_seq_index
。该函数是否对 8 位 BitVec 序列的情况进行特殊情况处理?意思是,如果我的序列都是字符串,Z3_mk_seq_index
是否仍会使用 z3str3
代码库?还是会求助于 z3 的序列求解器?
8 位值序列和 z3 中的字符串没有区别。事实上,所有字符串都被视为 8 位值的序列。
seq.indexof
和 str.indexof
之间的唯一区别是它们的类型。后者只是前者的特化。
要在常规字符串求解器和 z3str3 之间切换,只需使用适当的命令行开关 smt.string_solver
。有效选项为 seq
、z3str3
和 auto
。
在z3 tutorial中,str.indexof
和seq.indexof
是分开提到的。然而,在Z3 C API中,只有一个相关函数Z3_mk_seq_index
。该函数是否对 8 位 BitVec 序列的情况进行特殊情况处理?意思是,如果我的序列都是字符串,Z3_mk_seq_index
是否仍会使用 z3str3
代码库?还是会求助于 z3 的序列求解器?
8 位值序列和 z3 中的字符串没有区别。事实上,所有字符串都被视为 8 位值的序列。
seq.indexof
和 str.indexof
之间的唯一区别是它们的类型。后者只是前者的特化。
要在常规字符串求解器和 z3str3 之间切换,只需使用适当的命令行开关 smt.string_solver
。有效选项为 seq
、z3str3
和 auto
。