guarded-cubical.lagda.rst 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ..
  2. ::
  3. {-# OPTIONS --cubical #-}
  4. module language.guarded-cubical where
  5. .. _guarded-cubical:
  6. ********************
  7. Guarded Cubical
  8. ********************
  9. .. note::
  10. This is a stub.
  11. Cubical Agda is extended with Nakano's later modality and guarded recursion based on Ticked Cubical Type Theory :ref:`[2] <cubical-refs>`.
  12. For its usage, see :ref:`[1] <cubical-refs>` or the `example <https://github.com/agda/agda/blob/master/test/Succeed/LaterPrims.agda>`_.
  13. The implementation currently allows for something more general than in the above reference, in
  14. preparation for the ticks described in :ref:`[3] <cubical-refs>`.
  15. Given a type `A` in the `primLockUniv` universe we can form function
  16. types annotated with `@tick` (or its synonym `@lock`): `(@tick x : A)
  17. -> B`. Lambda abstraction at such a type introduces the variable in
  18. the context with a `@tick` annotation. Application `t u` for
  19. `t : (@tick x : A) → B` is restricted so that `t` is typable in the prefix
  20. of the context that does not include any `@tick` variables in `u`. The
  21. only exception to that restriction, at the moment, are variables of
  22. interval `I`, or `IsOne _` type.
  23. .. _cubical-refs:
  24. References
  25. ==========
  26. [1] Niccolò Veltri and Andrea Vezzosi. `"Formalizing pi-calculus in guarded cubical Agda." <https://doi.org/10.1145/3372885.3373814>`_
  27. In CPP'20. ACM, New York, NY, USA, 2020.
  28. [2] Rasmus Ejlers Møgelberg and Niccolò Veltri. `"Bisimulation as path type for guarded recursive types." <https://doi.org/10.1145/3290317>`_ In POPL'19, 2019.
  29. [3] Magnus Baunsgaard Kristensen, Rasmus Ejlers Møgelberg, Andrea Vezzosi. `"Greatest HITs: Higher inductive types in coinductive definitions via induction under clocks." <https://arxiv.org/abs/2102.01969>`_