Algoritmo IOS detrás de la restricción y layout automático

Estoy intentando revertir la function layoutSubviews en IOS donde calcula los autosizes y contraints. Normalmente, si creamos restricciones en los pedidos: A depende (restringido) B, B depende de C y C se invitó con un marco fijo, un sistema debería ser lo suficientemente inteligente como para realizar el cálculo en order: C -> B -> A para evitar loops innecesarios.

Mi pregunta es: ¿cómo atraviesa IOS (o cuál es el algorithm) la list de NSLayoutContraint y calculo el marco en ese order?

Simplemente contestar en caso de que alguien lo necesite: IOS usa Cassowary toolkit para hacer un layout automático ( http://www.cs.washington.edu/research/constraints/cassowary/ )