--- /dev/null
+isHittingSetTree(_, leaf).
+isHittingSetTree(_, node([], [])).
+isHittingSetTree(VisitedLabels, node([CurLabel|Labels], [CurChild|Children])) :-
+ not(member(CurLabel, VisitedLabels)),
+ append(VisitedLabels, [CurChild], UpdatedVisitedLabels),
+ isHSTree(UpdatedVisitedLabels, CurChild),
+ isHSTree(VisitedLabels, node(Labels, Children)).