Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] order-independent .vo files

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] order-independent .vo files


Chronological Thread 
  • From: Jason Gross <jasongross9 AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] order-independent .vo files
  • Date: Sun, 27 Nov 2022 11:35:44 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jasongross9 AT gmail.com; spf=Pass smtp.mailfrom=jasongross9 AT gmail.com; spf=None smtp.helo=postmaster AT mail-yb1-f181.google.com
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:MpJcwKtb5lSwlLt6F2ujH6AQ7skDT9V00zEX/kB9WHVpm62j5r mTdZEgvyMc5wxhPU3I9erwWpVoBEmslqKdgrNxAV7BZniDhILAFugLhrcKgQeBJ8SUzJ876U 4PSdkZNDQyNzRHZATBjTVQ3+xO/DBPys6Vuds=
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 638391ed_ZxReIXpjmJHqbYmD5W9BWphUdyYXksd81yWMM7aKDJC7JK+ BaXZUxk/dp1PbVmJQ13ZgqWNX4fNJnavioO8I6w==

Don't forget about the order of non-definition objects.  Definitions may be reorderable with each other, but they cannot be reordered across `Strategy` / `Opaque` / `Transparent` commands without potentially changing the performance of coqchk on the file from "instantaneous" to "longer than the lifetime of the universe".  Technically the order only matters when the opacity command is about a constant in the recursive dependencies of the constant being reordered, so you could still have a topological sort, but the computation may require arbitrary amounts of unfolding (a la Print Assumptions, though thankfully opaque proofs bodies wouldn't need to be fetched from disk), and this may be slow on large constants.

This is further complicated by the fact that modules must group not only their constants but also Ltac, notations, etc.  And furthermore plugins can declare arbitrary serializable data to be stored in the vo file, I believe, and can declare arbitrary code to be run on deserialization, IIRC.  And there's no way, AFAIK, to inspect the dependences of this data.  (Consider what would happen if a declared number notation were to be loaded before the constants it uses exist.). So probably any plug-in data objects would act as a reordering boundary.

Additionally, the nuances of what is and is not a reordering boundary could impact the correctness of the kernel, which seems like a recipe for worrisome complexity.

On Sun, Nov 27, 2022, 04:21 Clément Pit-Claudel <cpitclaudel AT gmail.com> wrote:
On 11/23/22 16:15, Abhishek Anand wrote:
> AFAIK, there is no way to distinguish the 2 versions via coqtop/coqc when the .vo file is imported in other files.

It probably doesn't matter, but…

   Print Module original.
   (* Module original := Struct Definition xx : nat. Definition yy : nat. End *)
   Print Module reversed.
   (* Module reversed := Struct Definition yy : nat. Definition xx : nat. End *)




Archive powered by MHonArc 2.6.19+.

Top of Page