F* review
A broad, self-hosted verifier for effectful programs with precise specifications.
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
F* is an open-source, dependently typed programming language, proof assistant, and program verification engine for functional and effectful software. It is aimed at developers working on high-assurance cryptographic and systems projects who need specifications close to implementation. Programs can express behavior through dependent types, refinement types, lemmas, and effects, while verification combines SMT-based automation, symbolic computation, normalization, and interactive tactics. The deployment model is self-hosted, with local binaries or source-based installations for Windows, Linux, and macOS.
Its strongest differentiator is the depth of its effect-aware verification model. F* can generate and check verification conditions, model state, exceptions, concurrency, and other effects, and check termination for recursive total functions. Z3-based automation handles parts of the proof process, while tactics and metaprogramming support more interactive workflows. Once code is verified, extraction and compilation targets include OCaml, F#, C, Wasm, and assembly. That combination gives teams a path from precise specifications to deployable outputs without limiting verification to purely functional examples.
F* is a strong fit when a project needs detailed specifications, explicit effect modeling, and control over proof automation. Its breadth also means the learning and proof-engineering burden can be significant, particularly for teams without experience with dependent types or interactive theorem proving. Teams seeking a hosted SaaS verifier, a general-purpose interface independent of F*, or a lighter scheduling-style workflow should choose another category of tool. F* suits engineering groups prepared to manage a local toolchain and invest in formal proofs for effectful software.
F* pros and cons
- Where it wins
- Combines dependent types, refinements, effects, and SMT automation
- Supports tactics, symbolic proofs, termination checking, and verification conditions
- Extracts verified code to OCaml, F#, C, Wasm, and assembly
- Where it doesn't
- Self-hosted deployment requires local installation and environment management
- Its workflows are centered on the F* language and theorem proving
- Interactive proofs can require specialized formal-methods expertise
F* fact sheet, pricing and score →
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
Last updated · How we research and update
