Algorithm for populating Trocq database for inductives#73
Conversation
|
TODO
Todo for myself, after merge:
Issues for later:
|
|
Hi @MysaaJava, |
|
I think you can add them to database.elpi. |
|
I've been working on recovering the build for HoTT. I minimized the dependencies to |
|
This PR now depends on LPCIC/coq-elpi#1003. |
|
Depends on LPCIC/coq-elpi#1003 and LPCIC/coq-elpi#1018 , which were merged before the release of rocq-elpi 3.4.0. Also depends on LPCIC/coq-elpi#1022 and LPCIC/coq-elpi#1030 . The first PR was merged, but not released and the second PR is pending review. I'll work on cleaning a bit the history before rebasing |
a76bced to
652bcff
Compare
|
Hi @MysaaJava, @CohenCyril. Most of the CI is green again. Here is the error I'm getting: File "./flt3_step.v", line 14, characters 0-50:
Error:
Compiled library mathcomp.algebra.ssralg (in file /nix/store/qgggghxlg3mhwj0wc59rlx9zsnk0xcfa-rocq-core9.1-mathcomp-algebra-2.5.0/lib/coq/9.1/user-contrib/mathcomp/algebra/ssralg.vo) makes inconsistent assumptions over library mathcomp.boot.nmoduleWould you know why is this happening? |
456c356 to
2ce27a3
Compare
|
I removed the detailed examples of derivations from this PR. |
|
A few comments: Is there something to be done regarding license? both projects, trocq and coq-elpi are GNU LESSER GENERAL PUBLIC LICENSE |
There was a problem hiding this comment.
General comments on the code:
Remove all coq.locate and relpace them with database predicatesPOSTPONEDUse elpi accumulate system (and this should remove the need for#[superglobal])Accumulate headers first, then files, and databases after- There is a lot of
coq.typecheck ? ? _is there a reason not to putokinstead of_? Why are theymainpredicates both in elpi and rocq files ?
Questions for @CohenCyril
- Should we have some "{{:gref ...}}" inside the code ? Why not, after all
- Some utilities -> move them to util.elpi ?
- Separate «static» database "trocq.consts" and «dynamic» database "trocq.translations" ?
What isUnset Universe Minimization ToSet.?- The Trocq file header is not in the added files. How bad is that ?
- Are the names of the Rocq files good ? Is
From Trocq Require Import Relnm.clear ?
|
|
||
| pred build-has-of i:map-class, o:gref. | ||
| build-has-of M R :- | ||
| coq.locate {calc ("Map" ^ {map-class.to_string M} ^ ".BuildHas")} R. |
There was a problem hiding this comment.
Replace this with a database predicate
All |
algorithm design collecting projectors partially generating the type of the injection lemma partially generating the type of injection lemmas + params deriving injection lemmas type correcting use of is injection terms + definitions adding injection lemmas to the db
…given an inductive implementing mR for unit + bool extending mR for enum containers 0+ constructors with 0+ arguments mR for recursive non parametric inductives Enum + Recursive no TyParam + TyParam no Recursive mR working for recursive inductives with type parameters
deriving type of Rm Rm for non inductive parameters, constructors without arguments Rm for non parametric inductives, constructors with 0+ arguments Rm for non parametric recursive arguments using KR to get arguments for IR_ind Rm for type parameters Rm for type parameters + recursion
fix _Coqproject
injK init refactoring some code wip injK type cleaning refactoring + cleaning moving some functions to utils wip injK adding type conlusion refactoring + generating injK types body of injKij tests for injK
mRRmK of False mRRmK body, many constructors 0 args. Unit, Bool, etc fixing imports + porting to elpi 3
fixing some duplicated files after the rebase
collecting arguments for rewriting injKs mRRmK for inds with multiple constructors + multiple arguments. No recursion No Typaram mRRmK + recusion mRRmK for type parameters + recursion cleaning mRRmK deriving mRRmK
add logical path to generic/inductives add generic to logical path in tests rename rel44 umap + mv tests to tests/inductives removing checks in generic fix tests postpone docs on inductive generation
wip introducing use of coq.env.global to recover HoTT build pruning extra plugins in derive
removing derive.bcongr dependency removing derive.eqk dependency removing some comments
adapt to univ.poly.param2 issue 1003 in rocq-elpi fix some uses of coq.env.global recovers param_empty for HoTT. requires isK and discriminate for pglobal to recover the rest fixes param_bool for hott adapt injections + injK to sortpoly fix injK for inductives with type parameteres fix sym symK non-dep path induction fix option for hott fixes sym and symK fix injections + injK + Rm fixes mRRmK up to sum fixes prod + adds 'iota' for primitive projections fixes lists fix vector fixes hott
recover examples/std fixes examples/hott
update dependencies trocq-std opam temporary hott dep + dev dep update nix temporary nix dependency for hott as discussed in rocq-community#79 and a temporary dependency for coq-elpi update nix, last PR got merged in coq-elpi master
f74b49c to
fc71038
Compare
MysaaJava
left a comment
There was a problem hiding this comment.
- Remove extra "Extra Dependencies"
description todo