we talked a couple years back about a dumb situation I was running into with tarski where in order for the Real type to be added, the language needed Theory.ARITHMETIC , but if it was set, the numeric-fluents requirement would be set on the pddl domain (which meant that even if the reals etc. were being used only for action costs, fast downward would reject the domain)
so tarski will currently complain if you use language.Real without ARITHMETIC
is there a currently suggested way of allowing Real to be used without adding the numeric-fluents requirement to the output pddl?
This could be addressed by refining the conditions under which :numeric-fluents is printed: instead of printing it every time Theory.ARITHMETIC in problem.language.theories, we could e.g. do a bit more work and check which functions have some numeric sort. If it is only total-cost then there's no need to print that requirement; otherwise, we print it
@emilkeyder reports in Slack:
This could be addressed by refining the conditions under which
:numeric-fluents
is printed: instead of printing it every timeTheory.ARITHMETIC in problem.language.theories
, we could e.g. do a bit more work and check which functions have some numeric sort. If it is onlytotal-cost
then there's no need to print that requirement; otherwise, we print it