1 isHittingSetTree
(_
, leaf
).
2 isHittingSetTree
(_
, node
([], [])).
3 isHittingSetTree
(VisitedLabels
, node
([CurLabel
|Labels
], [CurChild
|Children
])) :-
4 not(member
(CurLabel
, VisitedLabels
)),
5 append
(VisitedLabels
, [CurChild
], UpdatedVisitedLabels
),
6 isHSTree
(UpdatedVisitedLabels
, CurChild
),
7 isHSTree
(VisitedLabels
, node
(Labels
, Children
)).