coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Alexander Gryzlov <alex.gryzlov AT gmail.com>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Release of HTT 1.0
- Date: Wed, 4 May 2022 14:31:20 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=alex.gryzlov AT gmail.com; spf=Pass smtp.mailfrom=alex.gryzlov AT gmail.com; spf=None smtp.helo=postmaster AT mail-vs1-f51.google.com
- Ironport-data: A9a23:HBBQVq+l4+d3O1fh2ftmDrUDsXiTJUtcMsCJ2f8bNWPcYEJGY0x3m mscWjjVbKvbZGSmKNtzatiy80gBvMXdzdAxTgs6qCtEQiMRo6IpJ/zJdxaqZ3v6wu7rFR88s Z1GMrEsCOhuExcwcz/0auCJQUFUjP3OHvymYAL9EngZqTVMEU/Nsjo+3b9g6mJUqYLhWVnV5 Iuu+5e31GKNglaYDEpEs8pvlzs05JweiBtA1rDpTa0jUPf2zhH5PbpHTU2DByOQrrp8QoZWc 93+IISRpQs1yfuC5uSNyd4XemVSKlLb0JPnZnB+A8BOiTAazsA+PzpS2Pc0MS9qZzu1c99Zy PATtceQTAQTL7T1m9QmCUYfKRF0BPgTkFPHCSDXXc27ykTHdz7y2KwrAhxve4If/elzDCdF8 vlwxDIlNEjSwbLrhujiFa8x36zPL+GzVG8bknhkwCGfAuw3U5TEXY3F4NZZ2HE7gcUm8fP2P JZHN2U+Mk6ojxtnI3UFMZQnob6Sq3jGdzpc8V/LgaY7yj2GpOB2+OG1bIC9lsaxbc5ShwOTo n/M13/oBwkTct2Z0zuMtHy27tIjhgv+UYMWUaOjr7tk3QTVyWsUBxkbE1C8pJFVl3JSRfpfD hIUoQorrpIj7XWofuKnAFqCkHS960t0t8VrL8U27wSEy6zx6gmfB3QZQjMpVDDAnJ9mLdDN/ g/Z9+4FFQCDo5XOFi3Arub8QSeafHlKfTVbNEfoWCNcu4G7yLzfmC4jWTqKLUJYptj8GDW13 SvT6SZj3vMciskE06j99lfC695NmnQrZl5pjuk0djj9hu+cWGJDT9LzgbQ8xagaRLt1tnHb4 BA5dzG2tYji962lmi2XW/kqF7q0/fuDOzC0qQcxQsB8rWr3pCb+LdE4DNRCyKFBYpZsldjBM B+7hO+tzMI70IaCNvEsPNjvVazGM4C9Tou+C5g4keaikrAoLFPdlM2fTUGX2G/pnSARfVIXa P+mnTKXJS9CU8xPlWLoL89EiOND7n1gmAv7GM+jpzz6gOL2TCPEEt8tbQreBshntv/siFuOq L53aZDaoyizpcWkPUE7B6ZIfQ5URZX6bLiqw/Fqmhmrf1Q2RTl9W6OAqV7jEqQ895loei7z1 inVcidlJJDX3xUr8C2GNSJubq3BR5F6oS5pNCAgJwf61H0qYILp56AaLsNlcb4i/e1l7Ph1U /hVI5XaUqoTEmzKq2YHcJ3wjI1+bxD01w+DOiySZjJgLZNtQgr+/MDpI1n0/y4UAyvr7sYz+ uXy1g7STZcZaR5lCcLaNKCmw1+r7CoSnetzWw3DJdwKIBfg941jKirQiP4rIpFUeU+TmGfCj wvPWEUWv+jApYMx4eLlv6Hcotf7CfZ6E2pbA3LfsuS7OCzcyWypnt1NXeOOSjbCDT+m9ainY 9JV+PHyKvgwmlhH7thnGLFxwKNivtbiquMIzglgG3mXPV2nBqk6eSuD1MhL87NWn/pX5FLwV UWI9d1Xf76OPZq9QlIWIQMkaMWF1O0VymaOt6VreB2i6X8l5qeDXGVTIwKI1H5XIoxzPd532 uwmosMXt1Gyh0Z4KNqAlSwIpW2AImZaCPciv5AeRZHw008llwgEbpvbBSv7ppqIbowUYEUtJ zaVgovEhqhdlhWeKSttTSCV0LoPn4kKtTBL0EQGewaDlO3Di6JlxxZW6zk2EllYwxgvPzif4 YS325CZ5Jli/guEQOBGVmGoXh9aXViXpxW3xFwOm2nUCUKvUwQh6YH71fmlpCgkH6B0J1C3P 410DE7qVD/reIf62S5atYtNtan4VdIonuHdsJnPIilGdqXWpRLqh6avYSwDrB6P7QbdQqHYj bECwducopEX+cLdT2PXxmVaOXktpMi4GVF/
- Ironport-hdrordr: A9a23:RnWvQa3rJustjERWmUkXjQqjBL8kLtp133Aq2lEZdPU1SL3+qy nKpp4mPHDP+VUssR0b+exoW5PgfZq/z+8W3WB5B97LNzUO01HYSb2Kg7GSpwEI2BeTygee78 pdmmRFZ+EYxGIVsfrH
- Ironport-phdr: A9a23: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
- Ironport-sdr: VDPh69yWeAzVSX1kqrxH1SQN7FDQaghPV8OonBuAbcBB721fh2piNVYUwB/9JkcfLHViGxSSy8 zxNH0wYYLLiYThucXLqHRtsw8an4hHND1m2W3995fLNjHb+6nsojWMr+NIyzAT63+qolYxCMNn mEL7ctKbkQGr9xBlP9SvLTuO0/8IjaQLdnai5PBXyffBzJuCmiR5axv7onEz+Bvr8wXKZ3/N1E PMRK8rYSo5/tW8Kpms+/21U/XHHN4VnFd5LZM5dVisliIQEhOpJXRKYBPnixO8GFRJnOS13/dl XPW6B+Pb8/KmGD7mDyuO6t7D
Hello,
We would like to announce the first public release of Hoare Type Theory (HTT), a verification system for reasoning about sequential heap-manipulating programs based on Separation logic. It is available on Github (https://github.com/imdea-software/htt) and can be installed via opam.
HTT incorporates Hoare-style specifications via preconditions and postconditions into types. A Hoare type `ST P (fun x : A => Q)` denotes computations with a precondition `P` and postcondition `Q`, returning a value `x` of type `A`. Hoare types are a dependently typed version of monads, as used in the programming language Haskell. Monads hygienically combine the language features for pure functional programming, with those for imperative programming, such as state or exceptions. In this sense, HTT establishes a formal connection in the style of Curry-Howard isomorphism between monads and (functional programming variant of) Separation logic. Every effectful command in HTT has a type that corresponds to the appropriate non-structural inference rule in Separation logic, and vice versa, every non-structural inference rule corresponds to a command in HTT that has that rule as the type. The type for monadic bind is the Hoare rule for sequential composition, and the type for monadic unit combines the Hoare rules for the idle program (in a small-footprint variant) and for variable assignment (adapted for functional variables). The connection reconciles dependent types with effects of state and exceptions and establishes Separation logic as a type theory for such effects. In implementation terms, it means that HTT implements Separation logic as a shallow embedding in Coq.
The system is based on several papers: the original idea was introduced in "Polymorphism and Separation in Hoare Type Theory" (https://software.imdea.org/~aleks/papers/hoarelogic/icfp06.pdf) with "Dependent Type Theory of Stateful Higher-Order Functions" (https://software.imdea.org/~aleks/papers/hoarelogic/depstate.pdf) containing the initial motivation and preliminary proofs, while the version closest to the released implementation of HTT is described in "Structuring the Verification of Heap-Manipulating Programs" (http://software.imdea.org/~aleks/htt/reflect.pdf). You can find the full list of references on the Github page.
There are three main enhancements made in the current released version:
1. the Partial Commutative Monoid (PCM) structures used in the logic of assertions have been extracted into a separate https://github.com/imdea-software/fcsl-pcm project,
2. the Hoare types now use unary postconditions rather than VDM-style binary ones, and
3. the library has been refactored to support more powerful proof automation for heaps, based on canonical structures.
If you have any questions or suggestions for potential collaborations, please contact `aleks.nanevski [at] imdea.org`, or Alexander Gryzlov via zulip.
Best regards,
Aleks Nanevski & Alexander Gryzlov
We would like to announce the first public release of Hoare Type Theory (HTT), a verification system for reasoning about sequential heap-manipulating programs based on Separation logic. It is available on Github (https://github.com/imdea-software/htt) and can be installed via opam.
HTT incorporates Hoare-style specifications via preconditions and postconditions into types. A Hoare type `ST P (fun x : A => Q)` denotes computations with a precondition `P` and postcondition `Q`, returning a value `x` of type `A`. Hoare types are a dependently typed version of monads, as used in the programming language Haskell. Monads hygienically combine the language features for pure functional programming, with those for imperative programming, such as state or exceptions. In this sense, HTT establishes a formal connection in the style of Curry-Howard isomorphism between monads and (functional programming variant of) Separation logic. Every effectful command in HTT has a type that corresponds to the appropriate non-structural inference rule in Separation logic, and vice versa, every non-structural inference rule corresponds to a command in HTT that has that rule as the type. The type for monadic bind is the Hoare rule for sequential composition, and the type for monadic unit combines the Hoare rules for the idle program (in a small-footprint variant) and for variable assignment (adapted for functional variables). The connection reconciles dependent types with effects of state and exceptions and establishes Separation logic as a type theory for such effects. In implementation terms, it means that HTT implements Separation logic as a shallow embedding in Coq.
The system is based on several papers: the original idea was introduced in "Polymorphism and Separation in Hoare Type Theory" (https://software.imdea.org/~aleks/papers/hoarelogic/icfp06.pdf) with "Dependent Type Theory of Stateful Higher-Order Functions" (https://software.imdea.org/~aleks/papers/hoarelogic/depstate.pdf) containing the initial motivation and preliminary proofs, while the version closest to the released implementation of HTT is described in "Structuring the Verification of Heap-Manipulating Programs" (http://software.imdea.org/~aleks/htt/reflect.pdf). You can find the full list of references on the Github page.
There are three main enhancements made in the current released version:
1. the Partial Commutative Monoid (PCM) structures used in the logic of assertions have been extracted into a separate https://github.com/imdea-software/fcsl-pcm project,
2. the Hoare types now use unary postconditions rather than VDM-style binary ones, and
3. the library has been refactored to support more powerful proof automation for heaps, based on canonical structures.
If you have any questions or suggestions for potential collaborations, please contact `aleks.nanevski [at] imdea.org`, or Alexander Gryzlov via zulip.
Best regards,
Aleks Nanevski & Alexander Gryzlov
- [Coq-Club] Release of HTT 1.0, Alexander Gryzlov, 05/04/2022
Archive powered by MHonArc 2.6.19+.