coq / coq

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
https://coq.inria.fr/
GNU Lesser General Public License v2.1
4.78k stars 639 forks source link

Feature request: Cubical Type Theory #13544

Open Hexirp opened 3 years ago

Hexirp commented 3 years ago

I have not been able to find any attempts or proposals to incorporate CuTT into Coq. It's hard, but the idea should be here.

Alizter commented 2 years ago

I don't know what exactly you have in mind, but something along this line would essentially copy Agda: https://agda.readthedocs.io/en/v2.6.1/language/cubical.html

There some things are mentioned as added:

  1. An interval type and path types
  2. Generalized transport (transp)
  3. Partial elements
  4. Homogeneous composition (hcomp)
  5. Glue types
  6. Higher inductive types
  7. Cubical identity types

Since the main experts on implementing the tricky details here are all working on Agda, I don't see this happening in Coq any time soon. Perhaps adding 1-4 is feasible, but I know for a fact that 5 is very difficult to get right. I don't think any of the core developers have the time or effort to make these changes to the kernel.

ejgallego commented 2 years ago

Related #6938

Zimmi48 commented 2 years ago

Actually @herbelin is working on Cubical TT and I think he would like that it eventually makes it into Coq. But I'm not sure keeping an open issue in GitHub is going to be of any use in the meantime.

herbelin commented 2 years ago

There are quite a lot to say about the subject and I could actually share the current state of my reflection. The idea is not to follow Cubical Agda but:

[Edited]

patrick-nicodemus commented 1 year ago

Has there been any further discussion of this feature request/wish?

Having a computational interpretation of function extensionality so that one can identify two extensionally-equal functions without assuming additional axioms would be useful. Setoid rewriting with automated typeclass resolution can take a long time when term sizes are large.