#module f. dom(a). -dom(b). #show dom(_). #end module. tq(1..5). q(1..5). num(0..8). #hide tq(_). #hide q(_). #hide num(_). #module o. #import rel num(_). #export rel obs(_), num_obs(_). #export func r(_). dom(a). dom(b). #sig func r(dom) -> fluent. #sig func s(dom) -> fluent. #sig rel obs(fluent). #sig rel num_obs(num). { obs(r(X)) }. % Any fluent of the form r(X) can be observed. num_obs(Y) :- Y{ obs(F) }Y. #hide *. #show q. #show dom(_). #show obs(_). #show num_obs(_). #end module.