저는 Z3 정리 프로 버를 사용하며 큰 수식 (114 개 변수)이 있습니다. 모든 절과 함께 큰 수식을 인쇄 할 수 있습니까? 보통 print str(f)
은 출력을 절단하고 모든 절이 아닌 "..."만 끝에 인쇄됩니다.Z3py : 144 개의 변수가있는 큰 수식을 인쇄하십시오.
나는 print f.sexpr()
을 테스트했으며 항상 모든 절을 인쇄합니다. 그러나 sexpr 구문에서만.
수식의 모든 절을 인쇄 할 수 있지만 s- 표현식 구문은 사용하지 않아도됩니까?
참고 : 코드 예제는 문제를 보여주기에는 너무 작지만 큰 수식을 게시하면 너무 많은 공간이 필요합니다.
from z3 import *
C, G, M, P, R, S, SN, B = Bools('C G M P R S SN B')
C = (And(*(S,Or(Not(S),P),Or(Not(P),S),Or(Not(P),B),Or(Not(C),P),Or(Not(G),P),Or(Not(M),P),Or(Not(R),P),Or(Not(SN),P),Or(Not(B),P),True,Not(False),Or(R,SN,B,G,M,C,True))))
f = simplify(C)
#
# PRINTING
#
# for large a formula with 114 variables, the output of str(f) gets truncated
# only "..." is displayed at the end, not all the clauses are shown
# this is printed in the format I need:
print str(f)
# this always prints all the clauses, even for very large formulae
# here all clauses are printed, but not the format I need:
print f.sexpr()
# if you try the above two commands with a very large formula you see the difference!
수식을 SMT2 형식으로 인쇄 할 수 있습니다. http://stackoverflow.com/a/14629021/1841530 –