Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] How to translate the body of a constant to a constr?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] How to translate the body of a constant to a constr?


Chronological Thread 
  • From: Gaëtan Gilbert <gaetan.gilbert AT skyskimmer.net>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] How to translate the body of a constant to a constr?
  • Date: Thu, 2 Jul 2020 19:08:41 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gaetan.gilbert AT skyskimmer.net; spf=Pass smtp.mailfrom=gaetan.gilbert AT skyskimmer.net; spf=None smtp.helo=postmaster AT relay3-d.mail.gandi.net
  • Ironport-phdr: 9a23:3WNXBBMpDZ+pYkTc+8Yl6mtUPXoX/o7sNwtQ0KIMzox0I/X+rarrMEGX3/hxlliBBdydt6sazbKK+Pm4ASRAuc/H7ClfNsQUFlcssoY/p0QYGsmLCEn2frbBThcRO4B8bmJj5GyxKkNPGczzNBX4q3y26iMOSF2kbVImbuv6FZTPgMupyuu854PcYxlShDq6fLh+MAi6oR/eu8ULgIZuMLo9xxTGrndVZ+ha2X5jKVaPkxrh/Mu984Nv/iRKt/4968JMVLjxcrglQ7BfEDkoKX0+6tfxtRnEQwuP538cXXsTnxFVHQXL7wz0U4novCfiueVzxCeVPcvtTbApQjui9LtkSAXpiCgcKTE09nzch9Fqg6JapBKhoAF/w5LRbYqIOvdyYr/RcNUHTmVGQ8hRSjdBApuiYIQTE+oPM+FYr4znqFsPqxu1GA2gCezrxzNNgHL9wK803Pk7EQzewQIuAdwOvnTXotv7OqgdXuK6w7XHwzjYc/Nb2i3w5JTUfh0vo/yBW697f8rLyUkoEgPIllSeppb5ODOJzOsNtXCU4ethVeKrkGEotRtxoiSyzcorhYnGnJwaykze+iV/2oo1Kty4SEpgbtG6CptQqzqXN5B1QsIiWGFouyc6yrgDuZGlZigG0pInyADDa/GedYWD/x3sWvqLLzhimHJlZKywhwy08UW4xePxS9W53VRWoidbk9TAqnIA2RzT58aIVvZw+kWs1SiL2g3N9O1JLlw4mLfVJpM8zLM9l5UevEfBEyL2nEj6kambfVgq9Oiv7uToeLTmppmEOo97iwH+LqQumtGkDugiMwgOWG6W8vm/2r375UD1XqhGg/8snqTbrJzWP9kXq623DgNPz4ou7xayAy+43NgFk3QLNk9JdRKZg4TzJl3DIe70Ae2ij1mjlDpmwe3NMKf7DZXXNHfDla/sfbZj5E5Yzwo+1cpf6IxQCr4bIPP+VFb9u8HCAh88KQO0wuLnBM9y1owEX2KAH66ZPLnUsVCW+uIjO+iMZIkLtzbhM/Up+ePigH0jlVIfYaWlx4YbZXO2E/h8PkmUZXrhjs8EEWgQvwo+SOLqiEeFUT5Wf3uyULgz6S8nCI28C4fPXI+tgL2F3CigAJJWfHxGB0uXEXfrd4SEQPQMaCOXIs9kjDMET6KtS4k/2hGyrAP60aZoLvLI+i0EspLuzMR65+rKlR0r6TN0C9md3HqWQmFvnmIIQic207plrUx8zFeDy6l4jOZCGdxd/fMaGjs9YJXb1qlxD834cgPHZNaADli8Efu8BjRkYduy39YIVGl8H9+vlAyLiyWjDqMckfqEBZg+/7jA92PyNt1+ynPD2bNniVQ6FJgcfVa6j7JyolCAT7XClF+Uwvr7LPVO7Gv27G6GiFG2kgRdWQ90X7/CWClBNFDVvM/650bHQqXoD7k7YFIYlJyyb5BSY9istm1oAffuPNOEPjCrlmO5FE3NyvWJZYvuPWoU2incTk4Jj1JLpCrUBU0FHi6k5lnmInl2D1u2PRH38vhlq3K+S0IuiQeHcx852g==

https://coq.github.io/doc/master/api/coq/Library/index.html#val-indirect_accessor

Gaëtan Gilbert

On 02/07/2020 19:04, Francisco Trucco wrote:
Hi coq-club!

We are currently implementing a Coq plugin that makes use of the
Coq API <https://coq.github.io/doc/master/api/coq>. When we started working
on the project we were using
Coq 8.9. We are now updating the Plugin to Coq 8.11 and we were
wondering how to translate the body of a constant
<https://coq.github.io/doc/master/api/coq/Declarations/index.html#type-constant_def>
 to a constr
<https://coq.github.io/doc/master/api/coq/Constr/index.html#type-constr>.

This works in Coq 8.9 but it doesn't on Coq 8.11:

match cn.Declarations.const_body with
| Declarations.Undef _ ->
  None
| Declarations.Def d ->
  Some (Mod_subst.force_constr d)
| Declarations.OpaqueDef o ->
  Some (Opaqueproof.force_proof (Global.opaque_tables ()) o)

In particular, force_proof
<https://coq.github.io/doc/master/api/coq/Opaqueproof/index.html#val-force_proof>
now takes an indirect_accessor
<https://coq.github.io/doc/master/api/coq/Opaqueproof/index.html#type-indirect_accessor>.
How do we obtain this indirect_accessor?
And what is the correct way to translate the body of a constant
to a constr?

Thank you in advance for your help!

Best,

Francisco Carlos Trucco Dalmas



Archive powered by MHonArc 2.6.19+.

Top of Page