; smtlib2中公式((P->Q)/(Q->R)->(P->R)的编码; 该选项对于get模型和get估价命令是必需的(设置选项:produce-models true); 现在,对我们来说,任何逻辑都足够了,因为我们只需要纯命题逻辑; 我们选择一阶逻辑片段,其中包含未解释的函数和; 没有量词(设置逻辑QF_UF); 每个非逻辑符号都必须声明,非量化变量建模为; 建模为nullary函数的常数; 因此命题变量可以建模为nullary布尔函数; (谓词由布尔函数建模)(声明-乐趣P()Bool)(声明-乐趣Q()Bool)(声明-乐趣R()Bool); 蕴涵用“=>”表示,双蕴涵/等价用“=”表示,; 写出“和”、“或”和“不是”,; 所有内容都是前缀样式(断言(=>(和(=>P Q)(=>Q R))(=>P R)); 检查到目前为止所做的所有断言是否可以结合使用(检查状态); 如果checksat成功,我们可以检索完成评估的值; 已被发现(获得值(P Q R))