coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Soegtrop, Michael" <michael.soegtrop AT intel.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types
- Date: Wed, 16 May 2018 10:04:33 +0000
- Accept-language: de-DE, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=michael.soegtrop AT intel.com; spf=Pass smtp.mailfrom=michael.soegtrop AT intel.com; spf=None smtp.helo=postmaster AT mga03.intel.com
- Dlp-product: dlpe-windows
- Dlp-reaction: no-action
- Dlp-version: 11.0.200.100
- Ironport-phdr: 9a23:MkxlMR+QqPp3WP9uRHKM819IXTAuvvDOBiVQ1KB31uocTK2v8tzYMVDF4r011RmVBd6ds6oMotGVmpioYXYH75eFvSJKW713fDhBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1Ifn+FpLPg8it2O2+55Pebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTFUACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMMvrRr42RDui9b9mRh/2hikaKz43/mLZisJyg6JavB2uqAdyw4vIbIyRLvdyYr/Rcc0cSGFcXshRTStBAoakYocBEuQBOvhXr4bhp1sUqhu+HRGgD/7oxD9JmnD23bc13PolEQ3IwQctGNcOsHXIo9X1LqgdT+S1wLPTzTXEcfxW1iv96JLPchA5uvyMXLRwcdbPxkkrDQ/KklKQqYn8Mj6Ty+8DvW+b7+96WuKujW4qswBxoj6zxsgyjonFnJ8axU7C+C5kw4g1PcW1RFN1bNOrCpdcqi+XOoRsTs8/TWxluTw2x7wGtJKjYSQHyZoqywTRZvGJaYSE/BzuWeKLLTtlh39pZqqziwuz/EWk0OHwSMm53VlQoiZbiNXAqH8A2hjV58OaUPVy5F2h1iyK1w3L6uFLP0Q0la3DJp4kzb4/jIYfvErZEi/3nkX2kLGZdkE+9ue07OTnZ63qpp6aN4BqlgHzKrkil8KwDOgiLwQDUWeW9f6h2LDt/ED1WrRHg/0unqncqp/aJMAbpqCjAw9S14Yu8xO/Dza639QYh3YIMlZFdAicj4juJV7OL+z4De24g1S0izprxvbGPqH/DZXJNHTMjLDhfbNl505G1AUz1cxf545TCrwZPP3zXVbxuMXEAR89Lgy72P3qCM5914MbQWKAGLWVMKLUsV+S5+IgOfOAZIEPuGW1F/9wrfXplDoynUIXVaivx5oeLn6iVLwyKEKAJHHon90pEGEQvwN4Qva823OYVjsGLU21Uq0g/DYjTMqDDIzDT42pyvTV2SawHpRbYiZdDV2DDW3vb62FXesBbGSZJco3wW9MbqSoV4J0jULmjwT90bcydrOFqB1djorq0Z1O38OWkBgz8TJuCMHEijOMSX15miUDQDpkhfkj83w48U+K1O1Du9IdDcZavqobUwEmOJqaxOt/WYirB1DxO+yRQVPjee2IRDE8StVonI0LbE8lQJOjiAzO22yhBLpHz7E=
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 |
Attachment:
Opaquify.v
Description: Opaquify.v
- [Coq-Club] "Opaquify operator" to simplify work with dependent types, Soegtrop, Michael, 05/15/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Jason -Zhong Sheng- Hu, 05/15/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Soegtrop, Michael, 05/16/2018
- Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Fabian Kunze, 05/16/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Soegtrop, Michael, 05/16/2018
- Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Fabian Kunze, 05/16/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Soegtrop, Michael, 05/16/2018
- Re: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Maximilian Wuttke, 05/15/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Soegtrop, Michael, 05/15/2018
- RE: [Coq-Club] "Opaquify operator" to simplify work with dependent types, Jason -Zhong Sheng- Hu, 05/15/2018
Archive powered by MHonArc 2.6.18.