A provably correct functional programming approach to the prototyping of formal Z specifications | IEEE Conference Publication | IEEE Xplore