1. 13 Sep, 2015 2 commits
  2. 24 Aug, 2015 2 commits
  3. 22 Aug, 2015 10 commits
  4. 21 Aug, 2015 5 commits
  5. 20 Aug, 2015 5 commits
    • Andrei Paskevich's avatar
      HighOrd is new Map · 402fa65b
      Andrei Paskevich authored
      0. define Map.map 'a 'b as an alias 'a -> 'b
      1. define Set.set as an alias for 'a -> bool
      2. rename HighOrd.func to (->)
      3. remove HighOrd.pred
      4. update drivers
      402fa65b
    • Jean-Christophe Filliâtre's avatar
      96c82e82
    • Andrei Paskevich's avatar
      adapt the standard library · cb9aa0a2
      Andrei Paskevich authored
      except for modules/impset.mlw (because of Fset) and modules/mach/*
      (because of program cloning), the standard library now typechecks.
      
      This is still very much the work in progress. Many functions and
      predicates have still to be converted to "let function" and
      "let predicate". Here are some TODOs:
      - do not require the return type for "val predicate", "val lemma", etc.
      - do not require explicit variant for "let rec" if the code passes
        the termination check in Decl (see list.why)
      - what should become "val ghost function" and what should stay just
        "function" (see array.mlw, matrix.mlw, string.mlw, etc)?
      - some defined functions in algebra.why and relations.why had to be
        removed, so that they can be implemented with "let function" in
        int.mlw (since they are defined, they cannot be instantiated with
        let-functions). This seems too restrictive. One way out would be
        to authorise instantiation of defined functions (with a VC).
      - should we keep the keyword "model"? reuse of "abstract" in types
        breaks syntax coloring ("abstract" requires closing "end" in
        programs but not in types; maybe we can drop that "end" again?).
      cb9aa0a2
    • Andrei Paskevich's avatar
      Typing: remove excessive traversal · 1d3d25c8
      Andrei Paskevich authored
      1d3d25c8
    • Andrei Paskevich's avatar
      Pmodule: fix unit_module · 32b7287f
      Andrei Paskevich authored
      32b7287f
  6. 19 Aug, 2015 7 commits
  7. 18 Aug, 2015 3 commits
  8. 16 Aug, 2015 1 commit
    • Andrei Paskevich's avatar
      Task: use "Use" to represent theory use · d993dad4
      Andrei Paskevich authored
      up to this point, we used Clone declarations with an empty substitution
      to represent use of theories in tasks. The intention was to stress the
      fact that the imported declarations are physically present in the task
      and thus are followed by a "witness" Clone declaration (whereas a Use
      inside a theory acts rather as a pointer to follow).
      
      However, this encoding requires the clone substitution to cover every
      locally defined symbol: otherwise we might not be able to distinguish
      a use from a clone. Therefore, we had to clone even Pgoal propositions
      as Pskip, in order to keep the substitutions complete.
      
      This commit restricts the Clone declarations in tasks to actual
      theory cloning, and represents theory use with Use declarations.
      This hopefully makes the API more clear, and will allow us to
      abolish Pskip.
      d993dad4
  9. 07 Aug, 2015 1 commit
  10. 06 Aug, 2015 3 commits
  11. 01 Aug, 2015 1 commit
    • Andrei Paskevich's avatar
      Ity: another revision of eff_assign · d1453b19
      Andrei Paskevich authored
      in this version, we reconstruct and scan the mutable fields of all
      regions that occur in an assignment, independently on whether the
      region is modified. This avoids a bug in the previous version where
      the "left" and "right" subregion lists could have different length.
      This also avoids a bug in the version before that, where an upper
      region could have a shorter subregion list than one of its subregions.
      It is possible to fix those issues in a more efficient manner, but this
      seems to make code quite more complex for a non-existent practical gain.
      d1453b19