matteobusi / FStar

Verification system for effectful programs

Home Page:https://www.fstar-lang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

F*: Verification system for effectful programs

F* website

More information on F* can be found at www.fstar-lang.org

Installation

See INSTALL.md

Tutorial

The F* tutorial provides a first taste of verified programming in F*, explaining things by example.

Wiki

The F* wiki contains additional, usually more in-depth, technical documentation on F*.

Editing F* code

You can edit F* code using your favourite text editor, but Emacs, Atom, and Vim have extensions that add special support for F*, including syntax highlighting and interactive development. More details on editor support on the F* wiki.

You can also edit simple examples directly in your browser by using either the online F* editor that's part of the F* tutorial or our new even cooler online editor (experimental).

Extracting and executing F* code

By default F* only verifies the input code, it does not compile or execute it. To execute F* code one needs to translate it for instance to OCaml or F#, using F*'s code extraction facility---this is invoked using the command line argument --codegen OCaml or --codegen FSharp. More details on executing F* code via OCaml on the F* wiki.

Also, code written in a C-like shalowly embedded DSL can be extracted to C or WASM by the KreMLin tool, and code written in an ASM-like deeply embedded DSL can be extracted to ASM by the Vale tool.

Chatting about F* on Zulip

Users can chat about F* or ask questions at https://fstar.zulipchat.com (Zulip is a good open source alternative to Slack)

Community mailing list

The fstar-club mailing list is where various F* announcements are made to the general public (e.g. for releases, new papers, etc) and where users can ask questions, ask for help, discuss, provide feedback, announce jobs requiring at least 10 years of F* experience, etc.

List archives are public and searchable, but only members can post. Join here!

Blog

The F* for the masses blog is also expected to become an important source of information and news on the F* project.

Reporting issues

Please report issues using the F* issue tracker on GitHub. Before filing please use search to make sure the issue doesn't already exist. We don't maintain old releases, so if possible please use the online F* editor or directly the GitHub sources to check that your problem still exists on the master branch.

Contributing

See CONTRIBUTIONS.md

License

This new variant of F* is released under the Apache 2.0 license; see LICENSE for more details.

Towards F* version 1.0

This is a new variant of F* (carrying version 0.9.x) that is still in development and we hope will eventually lead to a 1.0 release. This new variant is incompatible and quite different compared to the previously released 0.7 versions and earlier.

Old F* versions (v0.7.1 and earlier)

F* v0.7.1 and earlier are no longer maintained, so please do not create any issues here about those versions.

About

Verification system for effectful programs

https://www.fstar-lang.org

License:Apache License 2.0


Languages

Language:F* 66.5%Language:F# 27.7%Language:OCaml 3.9%Language:C 0.6%Language:Shell 0.4%Language:Python 0.4%Language:Makefile 0.4%Language:Standard ML 0.1%Language:Dockerfile 0.0%Language:Haskell 0.0%Language:Emacs Lisp 0.0%Language:Batchfile 0.0%Language:Gnuplot 0.0%