Euclid — imperative programming language for writing verifiable programs