如何优化 smt2 文件?

问题描述

有什么办法可以读取 smt2 文件并以某种方式对其进行优化?减少行数,删除不必要的条件等

解决方法

您的问题相当模糊,并且不清楚这种“优化”到底会做什么。减小文件的大小几乎没有任何作用,因此我认为您实际上是指获得“简单”但“同等满足”的 smt2 描述。也就是说,“优化”文件将具有完全相同的 sat/unsat 状态,具有与原始模型完全相同的模型;但不知何故“更简单”。

如果是这样,您真的需要非常清楚“更简单”的含义。比“更容易解决”更简单?比“人类更容易阅读”更简单吗?

假设您的意思是“更容易解决”(我认为这是一个有趣的案例),那么您要问的是如何确定两组约束是否等价;这通常是一个NP完全问题。所以不行;不会有一个简单的方法来做到这一点。您能否删除“冗余”断言:当然可以,但这意味着您需要找出它们是什么,而这将是对基准本身的昂贵分析。

因此,在不了解任何进一步细节并指定“优化”的含义的情况下,答案很简单“不,没有简单的方法”。但每种情况都是不同的,不同的领域(例如整数差分逻辑)可能更容易发现不必要的约束。通过优化以获得更好的答案,您确实必须非常具体地表达您的意思。