Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO: Part IV and V and extra case studies #19

Open
christetreault opened this issue Aug 10, 2015 · 1 comment
Open

TODO: Part IV and V and extra case studies #19

christetreault opened this issue Aug 10, 2015 · 1 comment

Comments

@christetreault
Copy link
Contributor

The following sections of the book remain to be written:


Part IV : Abstract Refinements (TODO)

  1. Abstract Refinements I (code)
    • FLOPS/IHP talk sequence
    • Vanilla/Code [compose, foldr, ...]
  2. Abstract Refinements II (data)
    • RecRef [List, BST]
    • Arrays
  3. Abstract Refinements III (bounds)
    • compose
    • filter
    • state

Part V: Tips and Tricks (TODO)

  1. Tips:
    • Inductive strengthening
    • Materializing Proofs
    • Assumes/Dynamic Checking
  2. Tricks: Totality
  3. Tricks: Termination
    • Copy from BLOG/PAPER sequence
    • HW Exercises

Extra Case Studies

  • Case Study 1: AlphaConvert (tests/pos/alphaconvert-List.hs)

  • Case Study 2: Kmeans

  • grep FIXME/TODO (!)

  • move HINT to ABOVE code block

  • Subtyping exercises

    • div by zero
    • array-bounds
    • create (bytestring)
  • LH fix

    • allow using CoreToLogic definitions (e.g. member) in
      predicates/aliases not just other measures #332
  • convert measure refinements into invariants, e.g.

    measure size :: [Int] -> Nat

    should yield invariant {v:[a] | 0 <= size v}

? Intelligible parse errors

  • Web demo
@christetreault
Copy link
Contributor Author

This issue is being opened per discussion with @ranjitjhala on issue #18

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

No branches or pull requests

1 participant