1. 14 Jun, 2018 1 commit
  2. 29 May, 2018 1 commit
  3. 02 May, 2018 1 commit
    • Ralf Jung's avatar
      Add support for ElimInv to introduce a binder from the accessor · b2711d60
      Ralf Jung authored
      If the accessor introduces a binder, the first Coq-level intro pattern of `iInv`
      is used for that binder unless the type of the binder is unit, in which case
      `iInv` removes it completely.  Binders on the closing view shift are not (yet)
      supported as they are harder to smoothly eliminate in the unit case.
      b2711d60
  4. 27 Apr, 2018 1 commit
  5. 26 Apr, 2018 1 commit
  6. 25 Apr, 2018 1 commit
  7. 09 Apr, 2018 1 commit
  8. 04 Apr, 2018 1 commit
  9. 21 Mar, 2018 1 commit
  10. 19 Mar, 2018 2 commits
  11. 05 Mar, 2018 1 commit
  12. 04 Mar, 2018 5 commits
  13. 03 Mar, 2018 5 commits
  14. 01 Mar, 2018 4 commits
  15. 28 Feb, 2018 1 commit
  16. 27 Feb, 2018 5 commits
  17. 14 Feb, 2018 1 commit
  18. 12 Feb, 2018 4 commits
  19. 07 Feb, 2018 2 commits
    • Robbert Krebbers's avatar
      12326eeb
    • Robbert Krebbers's avatar
      Generic `iAlways` tactic. · 6dc83bcb
      Robbert Krebbers authored
      This commit implements a generic `iAlways` tactic that is not tied to
      `persistently`, `affinely` and `plainly` but can be instantiated with a
      variety of always-style modalities.
      
      In order to plug in an always-style modality, one has to decide for both
      the persistent and spatial what action should be performed upon introducing
      the modality:
      
      - Introduction is only allowed when the context is empty.
      - Introduction is only allowed when all hypotheses satisfy some predicate
        `C : PROP → Prop` (where `C` should be a type class).
      - Introduction will only keep the hypotheses that satisfy some predicate
        `C : PROP → Prop` (where `C` should be a type class).
      - Introduction will clear the context.
      - Introduction will keep the context as-if.
      
      Formally, these actions correspond to the following inductive type:
      
      ```coq
      Inductive always_intro_spec (PROP : bi) :=
        | AIEnvIsEmpty
        | AIEnvForall (C : PROP → Prop)
        | AIEnvFilter (C : PROP → Prop)
        | AIEnvClear
        | AIEnvId.
      ```
      
      An always-style modality is then a record `always_modality` packing together the
      modality with the laws it should satisfy to justify the given actions for both
      contexts.
      6dc83bcb
  20. 06 Feb, 2018 1 commit