coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "jonikelee AT gmail.com" <jonikelee AT gmail.com>
- To: Jason Gross <jasongross9 AT gmail.com>
- Cc: coq-club AT inria.fr, coq+miscellaneous AT discoursemail.com
- Subject: Re: [Coq-Club] Why dependent type theory?
- Date: Tue, 3 Mar 2020 16:54:58 -0500
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jonikelee AT gmail.com; spf=Pass smtp.mailfrom=jonikelee AT gmail.com; spf=None smtp.helo=postmaster AT mail-qt1-f173.google.com
- Ironport-phdr: 9a23:NXxh3R1QnuGOyPGwsmDT+DRfVm0co7zxezQtwd8ZseIeLvad9pjvdHbS+e9qxAeQG9mCt7Qd07Sd6v2+EUU7or+/81k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba59IRmssAndqsgbjYR/JqsxyxbCv2dFdflRyW50Kl2fmArx6N2t95B56SRQvPwh989EUarkeqkzUKJVAjc7PW0r/cPnrRbMQxeB6XsaSWUWjwFHAxPZ4xHgX5f+qTX1u+xg0ySHJ8L2TLQ0WTO/76d3TRLjlSkKOyIl/GzRl8d9l7xQrg6/qBNjwo7UeICVO+R4fqPBZtMRWG5NUt9MWyBdHo+wao0CBPcDM+lFtYnwv1UAoxugCwexB+3gyDFIiHj50qIm3OosCh3G0Q46Et4SqnnYsMv5OaEPWu611qnIyjDDYutY1Tf/74jIdBEhofKSUrJ0b8Xe11IiFwzAjlqKqIzlOymZ2fgKs2ie4eZrSOWii2wgqwF3ozivxdkjio3XiY0L0V3E+iB5z5w0Jd28UkJ0fdmkEJ5JuiycKoB4QdsiTnl2tComzrAKo522cSgQxJg6xhPTd+aLf5WK7x/tTOqdPzZ1iG54dL+6mhq/9VSvx+jzW8S1zFpGsi9InsfXuX0CzBPe79KIR/pj8kqv3DuDygPe5ftFLE0xj6XWL58szaQ1m5cRr0jOHCn7k1jsgqCMbEUr4O2o5vznYrr4op+cMJd5igTkPaQvnsyzGP04MhQTU2SC9+Swyb/u8EPjTLVFif02labZsJTEKsgBuqG5BApV3p4i6xa5ETimzMwVkWcbIF9BYh6KjIjkN0vTLP35EfuzmUmgnTVlyvzeO73uGJTNLnzNkLf7erZ97lZRyAg0zdBZ5pJUCa8OIPbtVUDvr9HYARo5PBa1w+bjEtlyyoQeWWeXDq+DLKzSqUOI5v4oI+SUeIAVvy/9J+E56P7qkH82gkQQfbKp3JsScHC3BO5qI0SfYXr2g9cOC30GvgQkTL+itFrXczdIYHD6cLg7/SpzXICvFoDFSZqqm6fQ9Ci+F5xSIGtBDwbfP23vctDOWfAKaSGfJsJsujMBXLmlDYQm0Fvm4A39zbtkI+7Z9wUXsJvi0J5+4OiFxkJ6ziB9E8nIizLFdGpzhG5dAmZuhPku83w48U+K1O1Du9IdENVS4/1TVQJjbMzTyuV7D5b5XQeTJ47UGmbjec2vBHQKdvx0w9IKZBwjSdCrjxSGxjbzRrFMyOfNC5sz/abRmXP2IpQlkiqU5Owal1AjB/B3Gyi+nKcmrlrcAofIlwOSkKP4Lak=
I'm probably an outlier on this topic. The point of my project was to
use dependent types as a way to guide a less experienced user (perhaps
an experienced software enginner with little proof background) to a
proof. Although, I only had myself as model for "less experienced
user". The goal was to enable such a user to generate proven-correct
code from program specifications, where the specifications included
comprehensive invariants which are coded as dependent types.
What dependent type encoded invarants do to a proof is that the
constraints they impose make much clearer what can and can't be
accomplished in each proof step, freeing the user from having to
conceptualize the overall proof, and limiting the amount of proof
exploration (trial and error) needed. They also enable a back
translation from a proof dead end to some understanding
about why the developing algorithm won't work (i.e.: such-and-such
invariant is now impossible to maintain due to these particular
proof steps). In this way, a proof assistant becomes a programming
assistant.
The generated code had all of the dependent type aspects erased, as
they were all in Prop.
I don't know how this can be accomplished without dependent types.
Especially given a user that may have a very good understanding of what
particular dependent types encode in terms of invariants, but has
little or no experience with proof techniques and probably no theory
background at all.
I don't think I ever hit any performance bottlenecks in this
development that weren't related to the various (e)auto proof search
automations doing a less than impressive job of pruning the search. I
have an example that I proved both with and without (e)auto proof
search - without it takes coqtop less than 7 minutes to complete on my
rather dated hardware. With (e)auto, it takes about 2 hours.
On Tue, 3 Mar 2020 14:43:30 -0500
Jason Gross
<jasongross9 AT gmail.com>
wrote:
> I'm in the process of writing my thesis on proof assistant performance
> bottlenecks (with a focus on Coq), and there's a large class of
> performance bottlenecks that come from (mis)using the power of
> dependent types. So in writing the introduction, I want to provide
> some justification for the design decision of using dependent types,
> rather than, say, set theory or classical logic (as in, e.g.,
> Isabelle/HOL). And the only reasons I can come up with are "it's
> fun" and "lots of people do it"
>
> So I'm asking these mailing lists: why do we base proof assistants on
> dependent type theory? What are the trade-offs involved?
> I'm interested both in explanations and arguments given on list, as
> well as in references to papers that discuss these sorts of choices.
>
> Thanks,
> Jason
- Re: [Coq-Club] [Agda] Why dependent type theory?, (continued)
- Re: [Coq-Club] [Agda] Why dependent type theory?, mechvel, 03/04/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Ulf Norell, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Pierre Courtieu, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Pierre-Marie Pédrot, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Jesper Cockx, 03/03/2020
- Re: [Coq-Club] Why dependent type theory?, Ralf Jung, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Jesper Cockx, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Ralf Jung, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Jesper Cockx, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Ralf Jung, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Christian Doczkal, 03/03/2020
- Re: [Coq-Club] Why dependent type theory?, Ken Kubota, 03/03/2020
- Re: [Coq-Club] Why dependent type theory?, jonikelee AT gmail.com, 03/03/2020
- Re: [Coq-Club] Why dependent type theory?, Daniel Schepler, 03/03/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, mechvel, 03/03/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Steven Shaw, 03/03/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Steven Shaw, 03/03/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/03/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Sylvain Boulmé, 03/04/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Kevin Buzzard, 03/05/2020
- Re: [Coq-Club] [lean-user] Re: [Agda] Why dependent type theory?, Bas Spitters, 03/08/2020
- Re: [Coq-Club] [Agda] [lean-user] Re: Why dependent type theory?, Thorsten Altenkirch, 03/12/2020
- Re: [Coq-Club] [Agda] [lean-user] Re: Why dependent type theory?, Mario Carneiro, 03/13/2020
- Re: [Coq-Club] [Agda] [lean-user] Re: Why dependent type theory?, Thorsten Altenkirch, 03/12/2020
- Re: [Coq-Club] [lean-user] Re: [Agda] Why dependent type theory?, Bas Spitters, 03/08/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, mechvel, 03/04/2020
Archive powered by MHonArc 2.6.18.