Task test for solution existence

This task is based on the presence of domain knowledge. Since the task is not mandatory, it is possible to skip it. In order to preserve the task control scheme in the case of skipping over, the task always contains the rule:
(defrule test-exist-y
(declare (salience -10))
(job test-exist)
(not (solution ?))
=>
(assert (solution yes))
)
which ensures a proper transfer of the activity to the next task initialize. In the case of the presence of domain knowledge for this task, it is represented in the form of rules
(defrule test-exist-n-<order number>
(job test-exist)
...
=>
(assert (solution no))
)
which are able to detect the case when the solution cannot be found (in other words, necessary condition for the solution existence does not hold). If this is not the case (and the solution for a particular problem does exist), no rule from these domain rules can be fired. In this case the database does not include the fact related to the non-existence of the solution and the rule test-exist-y can be fired.