STP的全称为Simple Theorem Prover,由MIT的Vijay Ganesh领导的小组开发,主要用于约束求解类问题。
官方主页:http://people.csail.mit.edu/vganesh/STP_files/stp.html
安装
官网给出了一个64位的编译文件,但是考虑到很多系统都是32位,所以有必要对源码重新编译安装一次。
安装环境是linux系统(我的是CentOS release 5.5 ),首先要安装好SVN,然后获取源码:
svn co https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp stp
接下来查看INSTALL文件可以知道怎么安装,其实就是执行脚本clean-install.sh,运行完之后,在bin目录下就会多出一个名为stp的可执行文件,这就是编译好的软件。运行./stp -h可以查看使用说明。
通过官方文档可以对基本的概念有所了解,如变量声明,函数和谓词等。除了官方文档给的例子,更多可以看安装目录下的test文件夹。
Let in语句的用法
let后面的语句用于声明变量且赋值,该变量传入in语句中使用,in语句计算的结果作为返回值。多个let in嵌套时最后一个in语句计算的结果作为返回值,如
QUERY(0b11 = (LET x = 0b11 IN (LET x1=0b10 IN x1))); --> Invalid<