constraint graphs explained