Z3上下文序列化/反序列化?

Z3上下文序列化/反序列化?,z3,Z3,是否可以(从C#)序列化/反序列化Z3上下文? 如果没有,是否计划使用此功能 我认为此功能对于实际应用程序很重要。当前API不直接支持此功能。下一个版本将支持多个解算器,我们将提供用于将断言从一个解算器复制到另一个解算器以及检索断言的命令。使用这些命令,可以通过在文件中转储表达式(SMT2.0格式)来实现序列化。要反序列化,我们只需将文件读回。 请注意,如果您在逻辑上下文中跟踪所断言的断言,则可以使用当前API实现此解决方案 尽管如此,我已经在许多使用Z3的项目中看到了以下方法。它们有自己的公式

是否可以(从C#)序列化/反序列化Z3上下文? 如果没有,是否计划使用此功能


我认为此功能对于实际应用程序很重要。

当前API不直接支持此功能。下一个版本将支持多个解算器,我们将提供用于将断言从一个解算器复制到另一个解算器以及检索断言的命令。使用这些命令,可以通过在文件中转储表达式(SMT2.0格式)来实现序列化。要反序列化,我们只需将文件读回。 请注意,如果您在逻辑上下文中跟踪所断言的断言,则可以使用当前API实现此解决方案


尽管如此,我已经在许多使用Z3的项目中看到了以下方法。它们有自己的公式表示形式。当他们调用Z3时,他们将自己的表示转换为Z3的表示。在大多数情况下,性能开销是最小的。这种方法给了他们很大的灵活性。序列化就是一个很好的例子。一些编程环境(例如Python)已经为序列化提供了一些内置支持

这可能是相关的:这有什么结果吗?它在当前的API中吗?