F*: A Proof-Oriented Programming Language