Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Speeding up inversion on large inductives

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Speeding up inversion on large inductives


Chronological Thread 
  • From: Petar Maksimovic <petar.maksimovic AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] Speeding up inversion on large inductives
  • Date: Mon, 7 Sep 2015 16:58:39 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=petar.maksimovic AT gmail.com; spf=Pass smtp.mailfrom=petar.maksimovic AT gmail.com; spf=None smtp.helo=postmaster AT mail-lb0-f177.google.com
  • Ironport-phdr: 9a23:crFyoB3N/F2SWy2xsmDT+DRfVm0co7zxezQtwd8ZsegSLPad9pjvdHbS+e9qxAeQG96Lt7Qd06GJ4ujJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6kO74TNaIBjjLw09fr2zQd6OyZ3vnL/js7ToICx2xxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP5Xz247bXianhL7+9vitMU7q3cY6Lod8JtLVry/dKAlR5RZCi4nOiY7/p7Frx7GGDOC+nIGGkAfkQFJBg/b7RqyCo/8riLg8O902zKbOMroTLscVjGr7qMtQxjt3nRUfwUl+X3a35QjxJlQpwis8kRy

Hello everyone,

I'm working on a development where there's an inductive type with 400+
constructors. Recently, it has become necessary to invert on it
regularly, and this takes an exceedingly long time.

What I've done to speed it up is to 'precompile' the inversion
principles using Derive Inversion for each of the constructors and
then build a custom tactic that uses these principles; this does speed
up the proofs immensely. The compilation process for the files that
hold the Derive Inversions is still horribly slow, but that is
expected and tolerable. The problem I'm having is that when I do a
Require Import or Export of these files in Proof General & Emacs, this
takes a very long time as well. This is also the case for compilation
of such files with coqc, even with the -dont-load-proofs directive in
place.

My current solution is to take all the generated induction principles,
print them into a separate file and declare them as axioms there. That
gives me the desired speedup, but is essentially a hack.

My questions are:

- Is there another way to speed up inversion?
- Is there a way to load the compiled libraries quicker?

Thanks, cheers,
Petar



Archive powered by MHonArc 2.6.18.

Top of Page