coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] moving a definition to a different file
- Date: Wed, 11 Oct 2023 18:53:21 -0400
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm1-f49.google.com
- Ironport-data: A9a23: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
- Ironport-hdrordr: A9a23:LU0J06Pv+8QZ3MBcTvijsMiBIKoaSvp037BL7TEJdfUxSKalfq +V7ZEmPHPP+VQssTQb6LO90cq7IE80l6QFhbX5VI3KNGLbUSmTTL2KhrGSpAEIdReOkNK1Fp 0NT0G9MrDN5JRB4voSKTPXL+od
- Ironport-phdr: A9a23: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 UdZh7z/KosXO8vw3EkwMjFH
- Ironport-sdr: 6527278f_VUxNo2j8Z+aEBBWzcvJzvqWYf1p8ql5sTGPzE5bORAG+UW/ QthhcBVm4UmOvCLuoX2gXkrjhFpFQvOgZoopjgA==
If the definition exists, why can't you refer directly to the existing definition? That would be simpler for users (no cleanup) but if it requires changes to Coq then it's probably more complex to implement than the tool you suggest.
Because it may take 10 minutes to rebuild Y.v and all the deps between X.v and Y.v . .vok builds may help a bit but the context switch overhead may still be large.
A few specific thoughts:- You may be able to do a lot of what you want by writing a Coq plugin with commands. But some of it may mean enhancing Coq itself to make info accessible. Perhaps you can write the needed commands to stdout rather than creating a file and an import command.
I suggested a file because I think the output would be huge. In case someone wants to use this feature without an IDE, manually copying and pasting may be an unnecessary burden. with IDE support, stdout would be fine too.
- ExportContextInfoRelevantToLastSentence works on X.v as you say above, or perhaps you meant on Y.v? It may be easier to implement (and harder to use) if it's inserted after D in Y.v. There should be internal data structures that tell what notations, sections, imports, etc. are available at that point. If it's in X.v, all that information probably has to be saved in Y.vo--more complex.
No, I meant X.v, where the (new) definition of D is already known to type-check correctly. if we want the context in Y.v to match that point in X.v, we need to know what the (relevant) context was just before (or just after) D in X.v. The Export is to be done at the source of the definition, the Import at the destination. I am not asking any change what gets stored in .vo files. this tool does not need any change in coqc.
- There's probably no code that will tell you exactly which notations are used for D. A more brute force approach is just knowing and exporting all the available notations at that point.
.glob file/coqdoc hyperlinks all notations to their definitions, right? what would we miss?
- Wouldn't you potentially need to handle recursive definitions, e.g. D depends on E and so forth? That makes it even trickier to get all the right data automatically. But you could leave it to the user to add E in a separate step. Or a variable V may depend on another variable W.
This is a great point I had not thought about but it does show up in practice: I move D from X.v to Y.v and then realize that D also depends on F in X.v so that has to be moved as well. Perhaps the ExportContextInfoRelevantToLastSentence command should warn/fail if D depends on some definition, say F, in the same file. The user or IDE will then first move F
- The user may need to edit the generated output, e.g. to remove notations and imports that already exist in X.v.
a goal is to not add redundant imports. the Import command is supposed to look at the existing context in Y.v at the insertion spot and match with the export from X.v and only add the missing bits
- [Coq-Club] moving a definition to a different file, Abhishek Anand, 10/10/2023
- Re: [Coq-Club] moving a definition to a different file, Jim Fehrle, 10/11/2023
- Re: [Coq-Club] moving a definition to a different file, Abhishek Anand, 10/11/2023
- Re: [Coq-Club] moving a definition to a different file, Jim Fehrle, 10/11/2023
- Re: [Coq-Club] moving a definition to a different file, Abhishek Anand, 10/12/2023
- Re: [Coq-Club] moving a definition to a different file, Jim Fehrle, 10/12/2023
- Re: [Coq-Club] moving a definition to a different file, Abhishek Anand, 10/12/2023
- Re: [Coq-Club] moving a definition to a different file, Meven Lennon-Bertrand, 10/12/2023
- Re: [Coq-Club] moving a definition to a different file, Jim Fehrle, 10/11/2023
- Re: [Coq-Club] moving a definition to a different file, Abhishek Anand, 10/11/2023
- Re: [Coq-Club] moving a definition to a different file, Jim Fehrle, 10/11/2023
Archive powered by MHonArc 2.6.19+.