z3支持哪些逻辑?

z3支持哪些逻辑?,z3,smt,Z3,Smt,是否有z3支持的所有理论/逻辑的完整列表?我参考了这篇文章,它提供了许多逻辑,但我不认为这个列表是详尽的。z3文档本身似乎没有指定支持哪些逻辑 我之所以这样问是因为我有一个smt文件,它不能在中的任何逻辑下解决(当使用“set logic”指定时),但可以在未指定逻辑时解决。您在Z3中指定一个逻辑,以确保Z3使用一个特定的策略和引擎,该策略和引擎通常对该逻辑中表示的公式类有用。 如果未指定任何逻辑,则Z3返回默认模式。没有与之对应的逻辑 此默认模式:它集成多个引擎 对于Z3,我在文档中没有看到这

是否有z3支持的所有理论/逻辑的完整列表?我参考了这篇文章,它提供了许多逻辑,但我不认为这个列表是详尽的。z3文档本身似乎没有指定支持哪些逻辑


我之所以这样问是因为我有一个smt文件,它不能在中的任何逻辑下解决(当使用“set logic”指定时),但可以在未指定逻辑时解决。

您在Z3中指定一个逻辑,以确保Z3使用一个特定的策略和引擎,该策略和引擎通常对该逻辑中表示的公式类有用。 如果未指定任何逻辑,则Z3返回默认模式。没有与之对应的逻辑
此默认模式:它集成多个引擎

对于Z3,我在文档中没有看到这样的列表,但是如果您真的想知道,可以在源代码中找到它。该列表从的第65行开始。我使用可怕的awk单行程序为您解析了列表,并在2016年5月20日(Z3 4.4.1和4.4.2之间)发现了此列表:

“AUFLIA”、“AUFLIRA”、“AUFNIRA”、“LRA”、“QF_ABV”、“QF_AUFBV”、“QF_UFBV”、“QF_AUFLIA”、“QF_AX”、“QF_BV”、“QF_IDL”、“QF_RDL”、“QF_LIA”、“QF_-LRA”、“QF_-NIA”、“QF_-NRA”、“QF_-UFIDL”、“QF_-UFLIA”、“QF_-ufla”、“QF_-UF-NIA”、“UF-fu-rf”<

您可以将其与官方的列表进行比较


对您来说,可能更重要的是应用程序的“最佳逻辑”是什么。这听起来像是你有一个大的和不同的问题,你想Z3应用任何策略,它可以。在这种情况下,目前最好不指定逻辑。问题是,在SMT-LIB v2.0中没有包罗万象的逻辑——某些标准中最大的逻辑是AUFNIRA,但这不包括位向量。因此,CVC4引入了一种非标准的全U支持逻辑,而Z3在没有指定逻辑的情况下对某些类型的问题表现最好。SMT-LIB2.0标准的这一缺点在SMT-LIB2.5中得到了解决,它使用了一种称为“ALL”的新逻辑。但是,Z3或CVC4都不支持这一点。

谢谢您的回答,但它没有回答我提出的问题。我仍然不清楚LogicsZ3支持哪些逻辑,或者在哪里可以找到这些信息。你说默认模式下没有对应的逻辑,这是否意味着默认模式下的z3可以做的比单个逻辑的总和还要多?链接现在断开了