Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types


Chronological Thread 
  • From: Fabian Kunze <kunze AT ps.uni-saarland.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types
  • Date: Wed, 16 May 2018 16:15:22 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=kunze AT ps.uni-saarland.de; spf=Pass smtp.mailfrom=kunze AT ps.uni-saarland.de; spf=None smtp.helo=postmaster AT thyone.hiz-saarland.de
  • Ironport-phdr: 9a23:LN5GKR2O3+BqQ0j7smDT+DRfVm0co7zxezQtwd8Zse0fK/ad9pjvdHbS+e9qxAeQG9mDsLQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHPbQhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLnhykHODw5/m/ZicJ+kbxVrw66qhNl34LZepuYOOZicq7fe94RWGpPXtxWVyxEGo6yb5EAAPEAPelCqYn2ul4ArQa4BQitGuzk1zhFhnzr3a080uUuDxrL3BQ7H94UrXTUqtT1OL4JUe+v1qbI1zHDYOlQ2Tjg8oTHbw4urOiKULltf8TRzkwvGBnEjlWWsYHlMDSV1uMCs2if8eVsT/6gi2kiqw1pozivwNsshZfNho4P11/L6yN0y5s2K92gUEN3fNCpHZRKuyyeNoZ6WMEvT3t2tCs01LEKoYC3cDQOxZg9xBPSa+aLf5aV7h/sTuqcLil0iXR4c7ylnRmy61KvyujkW8m0zllKqi1Fn8HQtnAN1x3T7c6HReVn8keh2DaO1hnf6vpeLk8uj6rbL4QuwrgtmZYJrEvMADf6mETwjKCIakUp4vWk5urob7n8opKRNpV4hwPkPqgwlMGzH/w0Mg0UUGia/eS82qfj/Ur8QLhSjf02j6/ZsZHEKskAvq65GBVZ0psl6xa+Fjumy84XkmMdLFJBYh2HiZXmN0vTL//mFfu/mUijkC93x/DaOb3sGonCLn/akLv4Ybl971NcxxEowNBE55NUD6kBL+jpVk/wstzYFB45PBauz+bpEtUunr8ZDGmIG+qSNL7YmV6O/OMmZeeWN6EPvzOoBfEv5vfoxVwkn00QNf2qwJ0FZVigBbJ7JUTcenPlmNMIF2tMsgdoH7+is0GLTTMGPyX6ZKk7/DxuUNv3X7eGfZikhfm65An+G5RXYm5cDVXWSSXwbMOZXfZJcyubOMtolDBCWbXzEtZ9hyHrjxfzzv9cFsSR4jcR78qxzMMz+uvS0Ao7/CZwBsKRlW2AHTktwzE4AgQu1aU6mnRTj1eO1a8i365EFc1U4f4PUgYocIXVxvZ+Atb+HA7MLI+E

Hello Michael,

Do you have an example where performance is degenerating because of this (except for printing)? It seems to me that the approach proposed by Maximilian will lead to coq never looking into the proof during unification. And I was under the impression that sharing will be used by coq to only evaluate the proof term once, even when repeated multiple times.

Best,
Fabian

Soegtrop, Michael <michael.soegtrop AT intel.com> schrieb am Mi., 16. Mai 2018 um 12:05 Uhr:

Dear Jason,

 

I attached a minimal example.

 

It contains the definition of a dependently defined cyclic type with two implementations for add.

 

The second (more efficient) definition actually uses the information that the inputs are within bounds to derive that the result is in bounds. But because this way the proofs of the inputs are parameters of the proof for the result, the (expanded) proof term grows exponentially with computation depth. The first definition of add, which doesn’t use the boundedness of the inputs, does not have this problem.

 

The idea of opaquify is to make the proof term opaque, since its inner structure should never be of interest. Automation would likely profit from this in terms of performance.

 

@all: is there a smarter way to define add' which would avoid this issue?

 

Best regards,

 

Michael

 

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928




Archive powered by MHonArc 2.6.18.

Top of Page