I would not say this is incorrect as there is no definition of `a: condition`.
As being declarative is about expectations, one translation could be:
I expect that "either both a and the condition to be true, or b true and the condition false" once the computation done.
a when: condition
b when: not condition