Open zapashcanon opened 1 month ago
I'll have to parse models in Owi, but the printing is done in Smt.ml, should we implement the parsing in Smt.ml or Owi? Having both in Smt.ml will make it easier to detect new incompatibilities but I'm not sure it's usefull for Smt.ml to parse them.
I think it makes sense to also have it in smtml, even if we just implement it in Owi. I'd like to be able to do to_string
to print a model and of_string
to parse it.
Is there a model format coming from the smtlib already?
The current format is not smtlib compliant, I'd have to go over the spec again to fix the model printing. But I can do this pretty quickly, and provide a of_string
function as well if you would like
Would you be OK in using another format than S-expressions ? I'm thinking about scfg which would work quite well IMO while allowing to display more complex structures in the future while maintaining good readability (I find S-expressions less readable than scfg). Also, I'm the author of the OCaml implementaiton of scfg. :-)
Yes this is fine with me. If this is to be done in smtml, ideally we would support the three formats (smtlib, json, and scfg)
I'm also wondering if I should keep this as an owi replay command or simply add a --replay-file argument to owi sym (or owi run ?) and even maybe owi c etc.
Regarding this, I like the --replay-file
option in owi run
. Although, it might make more sense to have it in owi sym
so that it is easy to use with owi c
. But I don't dislike having the owi replay
command, so to me you can leave it as is.
I made a draft PR in smtml for model parsing.
It makes sense in owi run
but in owi sym
unfortunately most options are incompatible with --replay-file
. I think I'm going to leave it this way and think more about it.
I'll wait for the smtml model parsing to be done and then we should be good to go with this one ! :)
@filipeom, so I got the main mechanism working. Before completing this, I think it would be great if we could discuss the format used for representing model. I have a few questions:
I'm also wondering if I should keep this as an
owi replay
command or simply add a--replay-file
argument toowi sym
(orowi run
?) and even maybeowi c
etc.