Skip to content

F* release for POPL 2017 #770

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions