Skip to content
Snippets Groups Projects
  1. Mar 14, 2017
    • Robbert Krebbers's avatar
      Shorten a lemma. · 3bdeb62f
      Robbert Krebbers authored
      3bdeb62f
    • Robbert Krebbers's avatar
      Merge branch 'fill_foldl' · 7047a278
      Robbert Krebbers authored
      7047a278
    • Robbert Krebbers's avatar
      Define `fill` in terms of a `foldl` over `fill_item`. · 6fc9c27e
      Robbert Krebbers authored
      This has some advantages:
      
      - Evaluation contexts behave like a proper "Huet's zipper", and thus:
        + We no longer need to reverse the list of evaluation context items in the
          `reshape_expr` tactic.
        + The `fill` function becomes tail-recursive.
      - It gives rise to more definitional equalities in simulation proofs using
        binary logical relations proofs.
      
        In the case of binary logical relations, we simulate an expressions in some
        ambient context, i.e. `fill K e`. Now, whenever we reshape `e` by turning it
        into `fill K' e'`, we end up with `fill K (fill K' e')`. In order to use the
        rules for the expression that is being simulated, we need to turn
        `fill K (fill K' e')` into `fill K'' e'` for some `K'`. In case of the old
        `foldr`-based approach, we had to rewrite using the lemma `fill_app` to
        achieve that. However, in case of the old `foldl`-based `fill`, we have that
        `fill K (fill K' e')` is definitionally equal to `fill (K' ++ K) e'` provided
        that `K'` consists of a bunch of `cons`es (which is always the case, since we
        obtained `K'` by reshaping `e`).
      
      Note that this change hardly affected `heap_lang`. Only the proof of
      `atomic_correct` broke. I fixed this by proving a more general lemma
      `ectxi_language_atomic` about `ectxi`-languages, which should have been there
      in the first place.
      6fc9c27e
    • Robbert Krebbers's avatar
      Merge branch 'more_spec_patterns' · 8b10155e
      Robbert Krebbers authored
      8b10155e
    • Robbert Krebbers's avatar
      Update proof mode docs. · 805e564a
      Robbert Krebbers authored
      805e564a
    • Robbert Krebbers's avatar
    • Robbert Krebbers's avatar
      Extend specialization patterns. · 87a8a19c
      Robbert Krebbers authored
      - Support for a `//` modifier to close the goal using `done`.
      - Support for framing in the `[#]` specialization pattern for
        persistent premises, i.e. `[# $H1 $H2]`
      - Add new "auto framing patterns" `[$]`, `[# $]` and `>[$]` that
        will try to solve the premise by framing. Hypothesis that are
        not framed are carried over to the next goal.
      87a8a19c
    • Ralf Jung's avatar
      81a673c6
    • Ralf Jung's avatar
      some more STS lemmas · eb0c6948
      Ralf Jung authored
      eb0c6948
  2. Mar 12, 2017
  3. Mar 11, 2017
  4. Mar 10, 2017
  5. Mar 09, 2017
  6. Mar 07, 2017
  7. Mar 06, 2017
  8. Mar 01, 2017
  9. Feb 24, 2017
  10. Feb 23, 2017
  11. Feb 22, 2017
Loading