Skip to content
Snippets Groups Projects
  1. Oct 29, 2020
    • Robbert Krebbers's avatar
      Extend the theory of the positive rationals `Qp`. · 25f516f0
      Robbert Krebbers authored
      - Remove the coercion from `Qp` to `Qc`, and remove it into from `Qp_car` into
        `Qp_to_Qc` to be consistent with other conversion functions.
      - Use `let '(..) = ...` in the definitions of `Qp_plus`/`Qp_mult`/`Qp_div` to
        avoid Coq tactics (like `injection`) to unfold these definitions eagerly.
      - Define orders `Qp_le` and `Qp_lt`, instead of relying on the orders on `Qc`,
        which were obtained through the removed coercion into `Qc`.
      - Lift lemmas about the orders from `Qc` to `Qp`.
      - Improve variable names and use of notation scopes.
      25f516f0
  2. Oct 01, 2020
  3. Sep 16, 2020
  4. Aug 30, 2020
  5. Apr 15, 2020
  6. Apr 11, 2020
  7. Mar 13, 2020
  8. Sep 11, 2019
    • Jacques-Henri Jourdan's avatar
      Fix Open/Close scope · a64bf2f0
      Jacques-Henri Jourdan authored
      Use Open/Close Scope without Local (i.e., export the scope opening)
      only when the scope corresponds to the main purpose of the module.
      a64bf2f0
  9. Aug 26, 2019
  10. Apr 25, 2019
  11. Mar 16, 2019
    • Jakob Botsch Nielsen's avatar
      More efficient list encoding for Countable · 9b209c98
      Jakob Botsch Nielsen authored and Robbert Krebbers's avatar Robbert Krebbers committed
      This changes the encoding used for finite lists of values of countable
      types to be linear instead of exponential. The encoding works by
      duplicating bits of each element so that 0 -> 00 and 1 -> 11, and then
      separating each element with 10. The top 1-bits are not kept since we
      know a 10 is starting a new element which ends with a 1.
      
      Fix #28
      9b209c98
  12. Jan 29, 2019
  13. Apr 27, 2018
  14. Mar 08, 2018
  15. Sep 21, 2017
  16. Sep 18, 2017
  17. Aug 02, 2017
  18. Jul 05, 2017
  19. Mar 15, 2017
  20. Jan 31, 2017
  21. Sep 20, 2016
  22. May 31, 2016
  23. Feb 17, 2016
    • Robbert Krebbers's avatar
      Rename simplify_equality like tactics. · 20690605
      Robbert Krebbers authored
      simplify_equality        => simplify_eq
      simplify_equality'       => simplify_eq/=
      simplify_map_equality    => simplify_map_eq
      simplify_map_equality'   => simplify_map_eq/=
      simplify_option_equality => simplify_option_eq
      simplify_list_equality   => simplify_list_eq
      f_equal'                 => f_equal/=
      
      The /= suffixes (meaning: do simpl) are inspired by ssreflect.
      20690605
  24. Feb 16, 2016
  25. Feb 13, 2016
  26. Feb 11, 2016
  27. Jan 12, 2016
  28. Dec 11, 2015
  29. Dec 04, 2015
  30. Nov 16, 2015
  31. Feb 01, 2017
    • 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
  32. Feb 08, 2015
  33. Oct 07, 2014
  34. Jun 16, 2014
    • Robbert Krebbers's avatar
      Changes in preparation of the C type system and C front-end language · 3503a91f
      Robbert Krebbers authored
      Major changes:
      * Make void a base type, and include a proper void base value. This is necessary
        because expressions (free, functions without return value) can yield a void.
        We now also allow void casts conforming to the C standard.
      * Various missing lemmas about typing, weakening, decidability, ...
      * The operations "free" and "alloc" now operate on l-values instead of r-values.
        This removes some duplication.
      * Improve notations of expressions and statements. Change the presence of the
        operators conforming to the C standard.
      
      Small changes:
      * Use the classes "Typed" and "TypeCheck" for validity of indexes in memory.
        This gives more uniform notations.
      * New tactic "typed_inversion" performs inversion on an inductive predicate
        of type "Typed" and folds the premises.
      * Remove a horrible hack in the definitions of the classes "FMap", "MBind",
        "OMap", "Alter" that was used to let "simpl" behave better. Instead, we have
        defined a tactic "csimpl" that folds the results after performing an
        ordinary "simpl".
      * Fast operation to remove duplicates from lists using hashsets.
      * Make various type constructors (mainly finite map implementations) universe
        polymorphic by packing them into an inductive. This way, the whole C syntax
        can live in type, avoiding the need for (slow) universe checks.
      3503a91f
Loading