Using higher order logic and functional languages to synthesize correct hardware | IEEE Conference Publication | IEEE Xplore