SMTLIB / z3 / stp:下划线的含义?

SMTLIB / z3 / stp: Meaning of underscore?

我不明白下划线的意思,例如在这些(不相关的)表达式中

[source]

(display (_ bv20 8))
(declare-const x (_ BitVec 64))

或者这个:

(declare-fun a () (Array (_ BitVec 32) (_ BitVec 7)))

[source]

_”是什么意思?

根据 SMTLIB 手册的 §3.3 Identifiers 部分,(_ <symbol> <index>+) 是一种定义 索引标识符 的方法。我认为这相当于在其他语言的标识符中编码信息,例如 int_64,只是数据具有更明确的结构。