1. 14 Mar, 2014 1 commit
  2. 06 Mar, 2014 1 commit
  3. 05 Mar, 2014 1 commit
  4. 04 Mar, 2014 1 commit
  5. 28 Feb, 2014 1 commit
  6. 27 Feb, 2014 1 commit
  7. 26 Feb, 2014 1 commit
  8. 25 Feb, 2014 1 commit
  9. 24 Feb, 2014 1 commit
    • Jean-Christophe Filliatre's avatar
      library: map.MapPermut now defined using map.Occ · ca0ec4aa
      Jean-Christophe Filliatre authored
      (that is, using number of occurrences)
      No more definition of permutation using inductive predicates.
      Impacts array.ArrayPermut; proof sessions updated.
      Coq realizations for map.Occ and map.MapPermut;
      proof session for array.ArrayPermut in progress
      ca0ec4aa
  10. 21 Feb, 2014 1 commit
  11. 17 Feb, 2014 1 commit
  12. 16 Feb, 2014 3 commits
  13. 15 Feb, 2014 4 commits
  14. 14 Feb, 2014 1 commit
  15. 07 Feb, 2014 1 commit
  16. 01 Feb, 2014 1 commit
  17. 28 Jan, 2014 1 commit
  18. 27 Jan, 2014 1 commit
  19. 21 Jan, 2014 1 commit
  20. 20 Jan, 2014 1 commit
    • Andrei Paskevich's avatar
      "eliminate_epsilon" added in drivers · 9c20cd7c
      Andrei Paskevich authored
      Currently, the builtin theory why3.HighOrd (or just HighOrd) must
      be explicitly "use"-d. However, the type (HighOrd.func 'a 'b) can
      be written ('a -> 'b), and the type (HighOrd.pred 'a) can be written
      ('a -> bool), and the application operation (HighOrd.(@)) can be
      written as the usual juxtaposition. Thus, normally, you do not have
      to write the qualifiers. The builtin theory why3.Bool (or just Bool)
      is needed for "bool". The names "HighOrd", "func", "pred", and "(@)"
      are not yet fixed and may change.
      
      "eliminate_epsilon" tries to be smart when a lambda (or some other
      comprehension form) occurs under equality or at the top of a definition.
      We could go even further and replace (\ x . t) s with t[x <- s], without
      lifting the lambda. I'm not sure it's worth it: we rarely write redexes
      manually. They can and will appear through inlining, though.
      
      Anyone who wants to construct epsilon-terms directly using the API
      should remember that these are not Hilbert's epsilons: by writing
      an epsilon term, you postulate the existence (though not necessarily
      uniqueness) of the described object, and "eliminate_epsilon" will
      happily convert it to an axiom expressing this existence. We only
      use epsilons to write comprehensions whose soundness is guaranteed
      by a background theory, e.g. lambda-calculus.
      9c20cd7c
  21. 18 Jan, 2014 1 commit
  22. 14 Jan, 2014 1 commit
  23. 13 Jan, 2014 1 commit
  24. 18 Dec, 2013 1 commit
  25. 14 Dec, 2013 1 commit
  26. 12 Dec, 2013 3 commits
  27. 11 Dec, 2013 1 commit
  28. 10 Dec, 2013 1 commit
  29. 09 Dec, 2013 1 commit
  30. 03 Dec, 2013 1 commit
  31. 02 Dec, 2013 1 commit
  32. 22 Nov, 2013 1 commit
  33. 15 Nov, 2013 1 commit