Open Rezenders opened 4 months ago
We can use the fd_realisability
property and its derived predicate for this: (not (inferred-Fd_realisability ?fd1 false_boolean))
Later, I think it is better to rename this property
(:action search_pipeline
:parameters (?a - action ?p - pipeline ?r - robot ?fd1 ?fd2)
:precondition (and
(= ?a a_search_pipeline)
(exists (?f1 ?f2)
(and
(action_requires ?a ?f1 ?f2)
(Function ?f1)
(Function ?f2)
(FunctionDesign ?fd1)
(FunctionDesign ?fd2)
(solvesF ?fd1 ?f1)
(solvesF ?fd2 ?f2)
(not (inferred-Fd_realisability ?fd1 false_boolean))
(not (inferred-Fd_realisability ?fd2 false_boolean))
)
)
(robot_started ?r)
)
:effect (and
(pipeline_found ?p)
)
)
Infer
fd_available
instead of declaring it. Start with checking component status, specially fd_realizability