1. 16 Jun, 2016 3 commits
  2. 01 Jun, 2016 1 commit
  3. 31 May, 2016 3 commits
  4. 28 May, 2016 1 commit
    • Robbert Krebbers's avatar
      CMRAs with partial cores. · cfb00b3e
      Robbert Krebbers authored
      Based on an idea and WIP commits of J-H. Jourdan: the core of a CMRA
      A is now a partial function A → option A.
      
      TODO: define sum CMRA
      TODO: remove one shot CMRA and define it in terms of sum
      cfb00b3e
  5. 27 May, 2016 1 commit
  6. 24 May, 2016 1 commit
    • Robbert Krebbers's avatar
      Make specialization patterns for persistent premises more uniform. · 65bfa071
      Robbert Krebbers authored
      Changes:
      - We no longer have a different syntax for specializing a term H : P -★ Q whose
        range P or domain Q is persistent. There is just one syntax, and the system
        automatically determines whether either P or Q is persistent.
      - While specializing a term, always modalities are automatically stripped. This
        gets rid of the specialization pattern !.
      - Make the syntax of specialization patterns more consistent. The syntax for
        generating a goal is [goal_spec] where goal_spec is one of the following:
      
          H1 .. Hn : generate a goal using hypotheses H1 .. Hn
         -H1 .. Hn : generate a goal using all hypotheses but H1 .. Hn
                 # : generate a goal for the premise in which all hypotheses can be
                     used. This is only allowed when specializing H : P -★ Q where
                     either P or Q is persistent.
                 % : generate a goal for a pure premise.
      65bfa071
  7. 07 May, 2016 1 commit
  8. 15 Mar, 2016 1 commit
  9. 11 Mar, 2016 1 commit
  10. 10 Mar, 2016 2 commits
  11. 08 Mar, 2016 1 commit
  12. 07 Mar, 2016 1 commit
    • Ralf Jung's avatar
      Add both non-expansive and contractive functors, and bundle them for the... · 2467bf21
      Ralf Jung authored
      Add both non-expansive and contractive functors, and bundle them for the general Iris instance as well as the global functor construction
      
      This allows us to move the \later in the user-defined functor to any place we want.
      In particular, we can now have "\later (iProp -> iProp)" in the ghost CMRA.
      2467bf21
  13. 06 Mar, 2016 2 commits
  14. 05 Mar, 2016 1 commit
  15. 02 Mar, 2016 1 commit
  16. 01 Mar, 2016 1 commit
  17. 27 Feb, 2016 1 commit
  18. 25 Feb, 2016 3 commits
  19. 24 Feb, 2016 6 commits
  20. 23 Feb, 2016 3 commits
  21. 22 Feb, 2016 3 commits
    • Robbert Krebbers's avatar
      Move global functor construction to its own file and define notations. · 457a11d9
      Robbert Krebbers authored
      And now the part that I forgot to commit.
      457a11d9
    • Robbert Krebbers's avatar
      Restraint instance search for global functors. · e0d0f8dd
      Robbert Krebbers authored
      Also, give all these global functors the suffix GF to avoid shadowing
      such as we had with authF.
      
      And add some type annotations for clarity.
      e0d0f8dd
    • Ralf Jung's avatar
      add the infrastructure for Coq to automatically infer the "inG" instances · 95c486ef
      Ralf Jung authored
      I added a new typeclass "inGF" to witness that a particular *functor* is part of \Sigma. inG, in contrast, witnesses a particular *CMRA* to be in there, after applying the functor to "\later iProp".
      inGF can be inferred if that functor is consed to the head of \Sigma, and it is preserved by consing a new functor to \Sigma. This is not the case for inG since the recursive occurence of \Sigma also changes.
      For evry construction (auth, sts, saved_prop), there is an instance infering the respective authG, stsG, savedPropG from an inGF. There is also a global inG_inGF, but Coq is unable to use it.
      
      I tried to instead have *only* inGF, since having both typeclasses seemed weird. However, then the actual type that e.g. "own" is about is the result of applying a functor, and Coq entirely fails to infer anything.
      
      I had to add a few type annotations in heap.v, because Coq tried to use the "authG_inGF" instance before the A got fixed, and ended up looping and expanding endlessly on that proof of timelessness.
      This does not seem entirely unreasonable, I was honestly surprised Coq was able to infer the types previously.
      95c486ef
  22. 20 Feb, 2016 2 commits