1. 29 May, 2016 1 commit
  2. 27 May, 2016 5 commits
  3. 13 Apr, 2016 1 commit
  4. 02 Mar, 2016 1 commit
  5. 16 Feb, 2016 3 commits
  6. 13 Feb, 2016 2 commits
    • Robbert Krebbers's avatar
      Use new Import/Export syntax everywhere. · 7dd32d7d
      Robbert Krebbers authored
      Also, make our redefinition of done more robust under different
      orders of Importing modules.
      7dd32d7d
    • Robbert Krebbers's avatar
      Make reflexivity hints work for evars. · 86803d3a
      Robbert Krebbers authored
      Since Coq 8.4 did not backtrack on eauto premises, we used to ensure
      that hints like
      
        Hint Extern 0 (?x ≡{_}≡ ?y) => reflexivity.
      
      were not used for goals involving evars by writing ?x ≡{_}≡ ?y instead
      of _ ≡{_}≡ _.
      
      This seems to be a legacy issue that no longer applies to Coq 8.5, so
      I have removed these restrictions making these hints thus more powerful.
      86803d3a
  7. 11 Feb, 2016 1 commit
  8. 10 Feb, 2016 1 commit
  9. 16 Jan, 2016 2 commits
  10. 12 Jan, 2016 1 commit
  11. 21 Dec, 2015 1 commit
  12. 15 Dec, 2015 1 commit
  13. 19 Nov, 2015 1 commit
  14. 18 Nov, 2015 2 commits
  15. 17 Nov, 2015 1 commit
  16. 16 Nov, 2015 1 commit
  17. 03 Feb, 2017 1 commit
  18. 01 Feb, 2017 2 commits
    • Robbert Krebbers's avatar
      Port to Coq 8.5 beta 2. · 02f213ce
      Robbert Krebbers authored
      The port makes the following notable changes:
      
      * The carrier types of separation algebras and integer environments are no
        longer in Set. Now they have a type at a fixed type level above Set. This
        both works better in 8.5 and makes the formalization more general.
        I have tried putting them at polymorphic type levels, but that increased the
        compilation time by an order of magnitude.
      * I am using a custom f_equal tactic written in Ltac to circumvent bug #4069.
        That bug has been fixed, so this custom tactic can be removed when the next
        beta of 8.5 is out.
      02f213ce
    • Robbert Krebbers's avatar
      Misc prelude omissions. · 462ea92a
      Robbert Krebbers authored
      462ea92a
  19. 10 Jun, 2015 1 commit
  20. 25 Feb, 2015 1 commit
  21. 13 Feb, 2015 1 commit
  22. 08 Feb, 2015 2 commits
    • Robbert Krebbers's avatar
      Update copyright headers. · 5a73c4ed
      Robbert Krebbers authored
      5a73c4ed
    • Robbert Krebbers's avatar
      Support function pointers and use a state monad in the frontend. · b2109c25
      Robbert Krebbers authored
      Important changes in the core semantics:
      * Types extended with function types. Since function types are a special kind
        of pointer types, types now have an additional mutual part called "ptr_type".
      * Pointers extended with function pointers. Theses are just names that refer
        to an actual function in the function environment.
      * Typing environments extended to assign argument and return types to function
        names. Before we used a separate environment for these, but since the
        argument and return types are already needed to type function pointers, this
        environment would appear in pretty much every typing judgment.
      
      As a side-effect, the frontend has been rewritten entirely. The important
      changes are:
      
      * Type checking of expressions is more involved: there is a special kind of
        expression type corresponding to a function designator.
      * To handle things like block scoped extern function, more state-fullness was
        needed. To prepare for future extensions, the entire frontend now uses a
        state monad.
      b2109c25
  23. 27 Jan, 2015 1 commit
    • Robbert Krebbers's avatar
      Let the malloc expression non-deterministically yield NULL. · fdcc90dd
      Robbert Krebbers authored
      * This behavior is "implementation defined" and can be turned on and off
        using the Boolean field "alloc_can_fail" of the class "Env".
      * The expression "EAlloc" is now an r-value of pointer type instead of an
        l-value.
      * The executable semantics for expressions is now non-deterministic. Hence,
        some proofs had to be revised.
      fdcc90dd
  24. 25 Jan, 2015 1 commit
  25. 15 Nov, 2014 1 commit
    • Robbert Krebbers's avatar
      More accurate formalization of integer ranks. · da7a14bb
      Robbert Krebbers authored
      Integers with the same size, are no longer supposed to have the same rank. As a
      result, the C integer types (char, short, int, long, long long) are different
      (and thus cannot alias) even if they have the same size. We now have to use a
      more involved definition of integer promotions and usual arithmetic conversions.
      However, this new definition follows the C standard literally.
      da7a14bb
  26. 08 Oct, 2014 1 commit
    • Robbert Krebbers's avatar
      Allow memory refinements to behave like simple renaming. · c5c0d373
      Robbert Krebbers authored
      Memory refinements now carry a boolean parameter that has the following
      meaning:
      
      [false] : Behave like a simple renaming of memories that merely allows to
                permute object identifiers. It does not allow to refine memories
                into a more defined version.
      [true]  : Behave like before. Objects can be injected, and memory contents can
                be refined into a more defined variant.
      
      We make refinements parametric in these two variant to avoid code duplication,
      and because the [false] variant is a special case of the [true] variant.
      
      For completeness of the executable semantics, we now use the [false] variant.
      c5c0d373
  27. 30 Sep, 2014 1 commit
  28. 25 Aug, 2014 1 commit
  29. 23 Jun, 2014 1 commit