DRAT-饰件

DRAT-饰件

DRAT-trim是一种可满足性检验和裁剪实用程序,用于验证所有已知的证据可满足性求解和预处理技术。DRAT-trim还可以生成修剪公式、优化证明、,和TraceCheck+依赖关系图。可以找到系统描述在下面.

下载 github

关于

RAT检查

DRAT-饰件是其前身的改进DRUP-trim,因为它允许更强大的冗余,RAT。该检查允许所有已知技术包括扩展解决、阻止条款添加,有界变量加法、扩展学习和许多更多信息。

删除信息

DRAT微调基于DRAT(D类删除R(右)分解A类对称的T型自动)包含删除引理指令的证明格式可以大大减少校对时间。

反向检查

DRAT-阀内件采用反向检查(Goldberg和Novikov2003)的子句证明,以最小化条款。在冲突分析和只需要检查标记的子句。

堆芯第一单元传播

DRAT-微调的单位传播程序修改以优先考虑标记为必要的条款,这进一步减少了“必要”子句的数量。

修剪后的公式

修剪后的公式可以选择从DRAT-饰件。这些是原始的有序子集省略了不必要的子句的公式。一个此输出的应用是Minimal的预处理不满足子集(MUS)提取器。

优化的校样

DRAT-trim可以选择性地生成优化的校样包含输入引理的子集和额外删除反向检查期间获得的信息。

依赖关系图

DRAT-trim还将在跟踪检查+格式。此格式是派生格式TraceCheck分辨率图形格式,但允许更强的依赖性。

下载

下载DRAT-trim

上次更新时间为2018年10月30日。

用法

DRAT trim可以通过以下命令使用gcc/g++进行编译:
gcc-O2-o阻力-调整阻力-调整。c(c)

DIMACS CNF公式和DRAT/DRUP证明是强制性的参数,但有几种控制行为的选项并发出其他结果。
./drat-trim公式验证[选项]

选项 描述
-小时 打印命令行选项摘要。
-c文件名 以DIMACS CNF格式生成修剪公式。
-l文件名 发出优化的DRAT证明。
-r文件名 发出TraceCheck+依赖关系图。
-t编号 强制执行时间限制(以秒为单位)。默认20000。
-(f) 正向检查不满足性的证据。
-S公司 正向检查可满足性证明。
-u个 不要使用核心-第一单元传播。
-第页 忽略删除信息。
-v(v) 详细输出。
-x个 只检查RUP的引理。

出版物

Wetzler,N.、Heule,M.J.H.和Hunt,Jr.,W.A.:DRAT-trim:使用表达性从句证明进行有效的检查和修剪。In:可满足性测试(SAT)的理论与应用LNCS第8561卷,Springer(2014)422-429[pdf格式]

Heule,M.J.H.,Hunt,Jr.,W.A.和Wetzler,N.:修剪检查子句证明时。In:中的形式方法计算机辅助设计(FMCAD),IEEE(2013)181-188[pdf格式]

Heule,M.J.H.,Hunt,Jr.,W.A.和Wetzler,N.:验证以扩展的分辨率进行反驳。In:国际自动扣款会议。第7898卷,共7898卷LNAI,Springer(2013)345-359[pdf格式]

示例

示例1。考虑下面一个DIMACS格式的输入公式(左),一个没有删除的DRAT证明信息(中间)和带有删除信息的DRAT证明(右)。空格和空行添加到示例中以提高可读性。删除信息不需要包含在证据中。然而,在校样中添加删除信息可以显著降低成本通过DRAT-trim检查校样。

电话:cnf 4 81  2 -3 0 -1 -2  3 0 2  3 -4 0 -2 -3  4 0 -1 -3 -4 0 1  3  4 0 -1  2  4 0 1 -2 -4 0
-1  02  00
-1 0d-1-2 3 0日d-1-3-4 0日d-1 2 4 0日2 0d 1 2-3 0日d 2 3-4 0日0


示例2。与DRUP格式相反,DRAT允许引入新变量。考虑以下公式以下为DIMACS格式(左)。这个公式中的前六个子句可以替换为五个新的子句使用一种称为有界变量加法的技术。要在DRAT中表达此技术,首先在子句的第一个位置添加带有新变量文字的新子句。然后,删除添加新子句后多余的(原始)子句。下面的DRAT证明(右)显示了新条款的添加和一些原始条款的删除。DRAT证明的最后两行被添加为反驳。

第5页第8页1 4 01  5 0 2  4 0 2 5 0个3  4 0 3  5 0-1 -2 -3 0-4 -5 0
6 1 06 2 06 3 0-6 4 0-6 5 0日期1 4 0d 2 4 0日d 3 4 0日日期:15 0d 2 5 0日d 3 5 0日6 00

二进制格式

将DIMACS文字映射为无符号整数

二进制编码的第一步是在将DIMACS格式转换为无符号整数。使用以下映射函数:映射(l):=(l>0)?2*l:-2*l+1。一些DIMACS文字的映射如下所示。

DIMACS文字无符号整数-63     127129     258   -8191   16383-8193   16387

无符号整数的可变字节编码

假设“w0。。。,wi是7位单词,从w1到wi都是非零的无符号数字“x”可以表示为

x=w0+2^7*w1+2^14*w2+2^(7*i)*wi

DRAT的可变字节编码(也用于艾格)是的序列i字节b0。。。双:

1w0、1w1、1w2。。。,0维

此序列中字节的MSB表示此字节是否为最后一个字节,或者后面是否还有更多字节。以下是一些示例:

无符号整数字节编码序列(十六进制)x b0 b1 b2 b3 b40   001   012^7-1=127 7f2^7      =   128   80 012^8  + 2 =   258   82 022^14-1=16383 ff 7f2^14 + 3 = 16387   83 80 012^28-1 ff ff ff 7f2^28 + 7           87 80 80 80 01

把它放在一起

在二进制DRAT格式中,每个子句至少由两个字节组成。这个第一个字节表示是否添加了引理(字符“a”或61 in十六进制)或已删除(十六进制中的字符'd'或64)。最后一个字节每个引理的值是零字节(十六进制中的00)。在这两者之间字节,则引理的文本在可变字节编码。

在下面的示例中,普通DRAT格式需要26个字节(包括新行字符并排除第二引理中的冗余空格),而相同证明的二进制DRAT格式只需要12个字节。发射二进制格式的证明将磁盘上的大小减少了大约a与传统(普通)DRAT格式相比,是三倍。

普通DRAT二进制DRAT(十六进制)电话:-63-8193 0 64 7f 83 80 01 00 61 82 02 ff 7f 00129 -8191 0

联系我们

Marijn J.H.Heule——cs dot utexas dot edu的名字

小沃伦·A·亨特——cs dot utexas dot edu的姓氏

内森·韦兹勒(Nathan Wetzler)——cs点的第一个初始nospace姓氏乌塞克斯教育