# Clone boolector instance 'b' bb = b.Clone() # Check sat res = b.Sat() # Check sat with limits # res = b.Sat(100, 10000) # res = b.Sat(lod_limit=100, sat_limit=10000) if res == b.SAT: print("result: SAT") else: print("result: UNSAT") # Get model or query assignments for nodes if res == b.SAT: print("Model:") # Get model and print to stdout b.Print_model() # Get model and print to file 'model.out' # b.Print_model("model.out") # Query assignments # print("Query assignments:") # print("{} {}".format(_var.symbol, _var.assignment)) # print("{} {}".format(_array.symbol, _array.assignment)) # print("{} {}".format(_uf.symbol, _uf.assignment)) # Get matching node of _cond0 in clone 'bb' _cond0_matched = bb.Match(_cond0) # Assume bb.Assume(~_cond0_matched[1]) bb.Assume(_cond0_matched[2]) # Check sat
btor.Assert(ult) umulo = btor.Umulo(x, y) numulo = btor.Not(umulo) # prevent overflow btor.Assert(numulo) res = btor.Sat() print("Expect: sat") print("Boolector: ", end='') if res == btor.SAT: print("sat") elif res == btor.UNSAT: print("unsat") else: print("unknown") print("") # prints "x: 00000100" print("assignment of {}: {}".format(x.symbol, x.assignment)) # prints: "y: 00010101" print("assignment of {}: {}".format(y.symbol, y.assignment)) print("") print("Print model in BTOR format:") btor.Print_model("btor") print("") print("Print model in SMT-LIBv2 format:") btor.Print_model("smt2") print("") except BoolectorException as e: print("Caught exception: " + str(e))