1. 06 Oct, 2015 1 commit
    • David Hauzar's avatar
      Not appending "." to names of record fields in counterexamples. · da802d43
      David Hauzar authored
      Previously, "." was automatically appended to names stored in
      model_trace label when creating variables corresponding to record
      fields in eval_match and when projecting record fields in the
      transformation intro_projections_counterexmp. Now, this is not done
      and "." must be given in model_trace label of the projection or
      record field.
      
      The reason is that for SPARK, character different from "." (e.g., "'"
      needs to be sometimes appended.
      da802d43
  2. 08 Sep, 2015 1 commit
  3. 07 Sep, 2015 2 commits
  4. 04 Sep, 2015 1 commit
  5. 03 Sep, 2015 3 commits
    • David Hauzar's avatar
      Bugfix: instead of replacing original labels with new labels, new labels · 101ed70b
      David Hauzar authored
      were added to original labels.
      101ed70b
    • David Hauzar's avatar
      Prevent loosing labels while doing eval_match. · f4a22d69
      David Hauzar authored
      When eval_match creates new terms from original terms, all labels of
      the original terms are copied to the new terms. The exception are
      labels of the form "model_trace:*". These labels are not copied if both
      original terms and new terms contain this label.
      f4a22d69
    • 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
  6. 20 Mar, 2015 1 commit
  7. 19 Mar, 2015 1 commit
  8. 05 Mar, 2015 1 commit
  9. 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
  10. 14 Mar, 2014 1 commit
  11. 18 Jan, 2014 1 commit
  12. 10 Nov, 2013 1 commit
  13. 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
  14. 28 Sep, 2013 1 commit
  15. 06 Mar, 2013 1 commit
  16. 21 Oct, 2012 1 commit
  17. 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
  18. 12 Oct, 2012 1 commit
  19. 18 Sep, 2012 1 commit
  20. 31 Aug, 2012 1 commit
  21. 09 Jun, 2012 1 commit
  22. 09 Apr, 2012 1 commit
  23. 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
  24. 26 Feb, 2012 1 commit
  25. 25 Feb, 2012 1 commit
  26. 08 Feb, 2012 2 commits
  27. 22 Sep, 2011 1 commit
  28. 02 Sep, 2011 1 commit
  29. 01 Jul, 2011 1 commit
  30. 03 Jun, 2011 1 commit
  31. 31 May, 2011 1 commit
  32. 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
  33. 25 May, 2011 1 commit
  34. 24 May, 2011 2 commits
  35. 23 May, 2011 1 commit