Youngest and oldest survivors

survivor(Id, Class)           :- passenger(Id, 1, Class, _, _).

youngest_survivor(min(Years)) :- survivor(Id, _), age(Id, Years).
oldest_survivor(max(Years))   :- survivor(Id, _), age(Id, Years).

Overall: youngest 0.42 (five months), oldest 80.

By class:

classyoungestoldest
10.9280
20.6762
30.4263