Programming in Martin-Löf's Type Theory: An Introduction (International Series of Monographs on Computer Science)