Skip to content

F* release for POPL 2017 #770

@catalin-hritcu

Description

@catalin-hritcu

Since all deadlines just passed, we should now have enough time to tackle the following cleanup issues (roughly sorted in decreasing order of importance/significance):

Merging branches

Bootstrap

  • remove --stratified P1 timeline: end of the 2016
    • Supporting recursive type abbreviations
    • Pushing code through the new type-checker and extraction machinery
  • Improving the bootstrap process: P2 by January 15, 2017
    • remove duplicate bootstrap libraries, etc. (nik will start today)
    • use autodeps

Concrete syntax

  • pretty-printer (sishtiaq_pp #764) P1 (protz, kenji, tomer, samin)

  • finishing the hybrid integration of pprint/F# and pprint/ml including pretty_string and pretty_out_channel (samin)

  • Printing the front-end syntax (timeline Jan 15, 2017) We have fstar --indent

  • have fstar-indent as a use-case for the new pretty printer -- need to preserve comments (possibly tricky); ideally, hook it up to the emacs mode via m-x indent-region

  • manual universe instantiation P1 by end of 2016

  • ascription syntax P3 (precedence of <: ) asap (kenji)
    We want (fun x -> e <: t) to mean (fun x -> (e <: t)).

Libraries

dm4free

  • dm4free (Meta Issue for DM4F #753) P1 Kenji
    • All examples in examples/dm4free
    • Fix monadic application in the normalizer
    • Complete relational proofs using dm4free in examples/relational/new/ifcWhile.fst

Z3

Misc

//val f (x:nat) : nat //f : x:nat -> Tot nat
let f x : nat = mk_ref 0; 0 ~~> let f x : DefaultEffect nat = ...
let f x = (fact y <: Pure nat (requires (y >= 0)) wp)

(e <: t) or (e <: M t wp)
(e <:: t)

confused

Post-release

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions