https://9lib.org/document/6qmwv69z-trustworthy-assembly-of-components-using-the-b-refinement.html