1. 03 Sep, 2015 1 commit
    • David Hauzar's avatar
      Traceability for record field names in counterexamples. · b25b6a72
      David Hauzar authored
      In wp, eval_match is used to replace record fields with simple variables
      of the same type. Originally, all labels from the variable that field
      was accessed were copied to new variables representing fields of this
      variable. Therefore also "model_trace:var_name" label was copied and thus
      the field had name "var_name" in the counterexample.
      
      This commit solves this problem by appending names of the fields to
      "model_trace:*" label of new variables representing record fields.
      b25b6a72
  2. 20 Mar, 2015 1 commit
  3. 19 Mar, 2015 1 commit
  4. 05 Mar, 2015 1 commit
  5. 11 Jul, 2014 1 commit
    • Martin Clochard's avatar
      Hack to prevent eval-match from decomposing quantified records · 698ca990
      Martin Clochard authored
        This is to prevent quantified records from being decomposed by
        eval_match. e.g, assert { forall x:t. ... } was previously
        transformed to assert { forall x1:t1, x2:t2, x3:t3. ... } if x was
        a record type with fields x1,x2,x3. This changed the
        instantiation pattern, which could be harmful.
      698ca990
  6. 14 Mar, 2014 1 commit
  7. 18 Jan, 2014 1 commit
  8. 10 Nov, 2013 1 commit
  9. 26 Oct, 2013 1 commit
    • Andrei Paskevich's avatar
      Pattern: add compile_bare which does not require known_map · 43aeab83
      Andrei Paskevich authored
      In pattern compilation, we only need to know the full list of
      constructors for a given type, whenever
      1. we want to check that a symbol used in a pattern is indeed
         a constructor;
      2. we want to check for non-exhaustive matching and return an
         example of a non-covered pattern, if any.
      Thus, we need to give Pattern.compile access to the current
      known_map whenever we check new declarations in Decl or Mlw_decl.
      However, once we have checked the patterns, we do not need the
      full constructor lists just to compile the match expressions.
      Just knowing the number of constructors (provided in ls_constr)
      is enough to detect non-exhaustive matching during compilation.
      43aeab83
  10. 28 Sep, 2013 1 commit
  11. 06 Mar, 2013 1 commit
  12. 21 Oct, 2012 1 commit
  13. 20 Oct, 2012 1 commit
    • Andrei Paskevich's avatar
      simplify copyright headers · 11598d2b
      Andrei Paskevich authored
      + create AUTHORS file
      + fix the linking exception in LICENSE
      + update the "About" in IDE
      + remove the trailing whitespace
      + inflate my scores at Ohloh
      11598d2b
  14. 12 Oct, 2012 1 commit
  15. 18 Sep, 2012 1 commit
  16. 31 Aug, 2012 1 commit
  17. 09 Jun, 2012 1 commit
  18. 09 Apr, 2012 1 commit
  19. 18 Mar, 2012 1 commit
    • Andrei Paskevich's avatar
      separate abstract types and logic symbols · 1b769a78
      Andrei Paskevich authored
      - put abstract types and aliases in Dtype of tysymbol
      - put (recursive) algebraic types in Ddata of (ts,constr list) list
      - put abstract function/predicate symbols in Dparam of lsymbol
      - put defined logic symbols in Dlogic of (ls,ls_definition) list
      1b769a78
  20. 26 Feb, 2012 1 commit
  21. 25 Feb, 2012 1 commit
  22. 08 Feb, 2012 2 commits
  23. 22 Sep, 2011 1 commit
  24. 02 Sep, 2011 1 commit
  25. 01 Jul, 2011 1 commit
  26. 03 Jun, 2011 1 commit
  27. 31 May, 2011 1 commit
  28. 30 May, 2011 1 commit
    • Andrei Paskevich's avatar
      rework eval_match · 132bd08d
      Andrei Paskevich authored
      - in particular, we simplify function definitions before testing
      them for linearity (this allows to inline array updates which are
      defined via a record update {| a with map = a.map[i <- v] |}).
      We really need to add some memoization here, otherwise we might
      pay too much.
      132bd08d
  29. 25 May, 2011 1 commit
  30. 24 May, 2011 2 commits
  31. 23 May, 2011 1 commit
  32. 20 May, 2011 1 commit