Est-ce que c'est pas plus simple de dire que les borders c'est les crowns les plus spécifiques, ie ceux dont aucun enfant direct n'est un crown ?
~~~
for e in core do
   for ch in e.direct_smallers do if core.has(ch) then continue
   crown.add e
end
~~~
end
~~~