z3 / python reals

Com a interface da web z3 / python, se eu perguntar:

x = Real ('x')
solve(x * x == 2, show=True)

Eu agradeço:

Problem:
[x·x = 2]
Solution:
[x = -1.4142135623?]

Pensei que o seguinte script smt-lib2 tivesse a mesma solução:

(set-option :produce-models true)
(declare-fun s0 () Real)
(assert (= 2.0 (* s0 s0)))
(check-sat)

Atlas, eu recebounknown com z3 (v3.2).

Suspeito que o problema esteja no termo não linear(* s0 s0), da qual a interface python de alguma forma não sofre. Existe uma maneira de codificar o mesmo no smt-lib2 para obter um modelo?

questionAnswers(2)

yourAnswerToTheQuestion