SWI-Prolog - как получить решение с максимальным списком?

Есть предикат family(FAMILY, HUSBAND, WIFE, CHILDREN), выводящий семью. В CHILDREN записывается список из детей. Проблема в том, что сейчас выводятся все возможные решения. Как можно оставить CHILDREN только с максимальным списком, чтобы не было решений вроде CHILDREN = [] или CHILDREN = ['Alex']?

person('London', 'Jack', 'M', date(1998, 3, 20)).
person('London', 'Milla', 'F', date(1998, 9, 3)).
person('London', 'Alex', 'M', date(2008, 9, 3)).
person('London', 'Rose', 'F', date(2008, 9, 3)).

age(DATE, AGE) :-
    get_time(TODAY_STAMP),
    date_time_stamp(DATE, DATE_TIME_STAMP),
    AGE is (TODAY_STAMP - DATE_TIME_STAMP) / 31536000.

children(_, _, []).

children(FAMILY, VISITED_CHILDREN, [NAME|CHILDREN]) :-
    person(FAMILY, NAME, _, BIRTHDAY),
    age(BIRTHDAY, AGE),
    AGE < 18,
    not(member(NAME, VISITED_CHILDREN)),
    children(FAMILY, [NAME|VISITED_CHILDREN], CHILDREN).

family(FAMILY, HUSBAND, WIFE, CHILDREN) :-
    person(FAMILY, HUSBAND, HUSBAND_GENDER, HUSBAND_BIRTHDAY),
    person(FAMILY, WIFE, WIFE_GENDER, WIFE_BIRTHDAY),
    HUSBAND \= WIFE,
    HUSBAND_GENDER = 'M',
    WIFE_GENDER = 'F',
    age(HUSBAND_BIRTHDAY, HUSBAND_AGE),
    age(WIFE_BIRTHDAY, WIFE_AGE),
    HUSBAND_AGE >= 18,
    WIFE_AGE >= 18,
    children(FAMILY, [], CHILDREN).

Ответы (0 шт):