Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spaces in :qid of quantifier produces problematic z3.log #6081

Closed
bobismijnnaam opened this issue Jun 5, 2022 · 0 comments
Closed

Spaces in :qid of quantifier produces problematic z3.log #6081

bobismijnnaam opened this issue Jun 5, 2022 · 0 comments

Comments

@bobismijnnaam
Copy link

Hello, I have a problem with using spaces in the :qid attribute of quantifiers. Specifically, I think it might influence the logging output, as produced by trace=true proof=true. For example, the following input:

$ cat nopos.smt2
(declare-fun f (Int) Int)
(declare-fun g (Int) Int)

(assert (forall ((i Int)) 
  (!(= (f i) (g (+ i 1))) 
  :pattern ((f i))
  :qid |oh no|)))

(assert (not (= (f 2) (g 3))))
(check-sat)
$ ~/Downloads/z3-4.8.17-x64-glibc-2.31/bin/z3 nopos.smt2 trace=true proof=true
unsat

Leads to an unescaped/unquoted qid in [mk-quant] entries, as below:

[mk-quant] #31 oh no 1 #30 #29

Complete z3.log output: z3.log. I used z3 4.8.17, but this is also present in at least 4.8.5. I'm not sure if z3 is violating a spec here, but I know that at least axiom profiler trips over this.

Maybe pipes around the name of [mk-quant] could be added to the z3 log format here, such that log parser can then detect when spaces are used? Or is the format of [mk-quant] fixed, i.e.:

[mk-quant] #number qid-possibly-with-spaces number #number #number

In that case, axiom profiler could maybe be enhanced to also parse this output. But then identifiers with multiple subsequent spaces might still be tricky to handle... In any case, I'd be very grateful for any help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant