type theorem work