coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Talia Ringer <tringer AT cs.washington.edu>
- To: Coq-Club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Why dependent type theory?
- Date: Wed, 4 Mar 2020 23:20:19 -0800
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=tringer AT cs.washington.edu; spf=Pass smtp.mailfrom=tringer AT cs.washington.edu; spf=None smtp.helo=postmaster AT mail-wr1-f44.google.com
- Ironport-phdr: 9a23:uKhR+xHNQ97ST43KR0YKv51GYnF86YWxBRYc798ds5kLTJ78os+wAkXT6L1XgUPTWs2DsrQY0raQ6vixEjVYvN6oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmrogjdrNQajZdmJ6o+1xfFvntFcPlKyG11Il6egxnz6sCs8ZB57i9eoegh98lOUaX7e6Q3U7lVByk4Pm42+cPmqwDNQROA6XUAXGoWlAFIAxXe4xHhQpjxqCr6ufFj1yScIMb7UKo7WTWm76dsVR/olCIKPCM3/W3LlsB9ir9QrRS8rBJ93oHUepmYO/Vwfqzffd0US2lPUNtPWSNdGY6zdZcDAvAbMOpEs4XwpV0Dpga+Cwm2A+PvzydFiGHs0q0+0uQuCxzN0hAhH9IIv3Tbss/1P7oVXOCp1qnIzDPDb/xI1jfn84XHbgshreuCXL1qasrRyUgvFwXKjlWMrozlOSmZ2foQvGiG9udtU/+khW0/qwxpvDSj2sMhhpPKi48V0FzI6zt1zJsvKdC3R0N2Z8OvHoFKuCGALYR2R9svQ2F2tyY+zb0LoZu7czILyJQj3hLeZeaHf5WR7hLtW+ucLi10hH1ieLK4iBay9VavxvfgWcmz1VZGtitFkt/SuXARzxHf9NSLR/9n8kqi2TuDzR7f5v9ZLUwumqfWJIYtwrsqmZoStUTDEDX2mELzjKKOakUk4Omo6+LoYrr4vJ+RLJN7ihrkPqUggMO/GuQ4MgkIX2iU5eS807vj8VfnT7pXk/06irPZv4zCJcQHuq65BBdY3Zok6xamFjupzNAYnWQcI19eYxKGj43pO0nUL/ziDPe/hU6skDZxyPzcML3hGMaFEn+Wu7D4OJ159kQUnAE01JVU449eIrAHOvP6HEHr4o/2FBg8ZjC9x+fuQO980IwTQyrbHrWYNqzfq3eD/aQwKvKMZYkapDH7bfUp+qi93jcChVYBcPzxjtMsY3eiE6E+ehTLUT/Xmt4EVFwykE87Re3uhkeFVGcCNX2pGb01/TE6Do26CoGFS4yw0uXYgHWLW6ZOb2UDMWiiVG/yftzVCfwXLj2bOc9glDMYUr7nRoM8h0n36V3KjoF/J++RwRU28JLu0N8vur/WnBA2sCNuVoGTjz3LQGZzkWcFATQx2fInrA==
Interesting thread so far. I have few thoughts on performance, unsurprisingly. Just many thoughts on why I like dependent types (practically) and how much suffering is essential (much less than the status quo).
With dependent types, you can rule out entire classes of programs you don't want at compile-time, and get a nice specification for the user. So your user can know off the bat what weird edge cases your program disallows, and furthermore the user will not even be allowed to call the program with one of those edge cases. From that perspective, I expect that once we make these a bit easier to use, they will be a lot more common as a normal programming language feature.
Many of the pain points for using dependent types (especially the pain points for using indexed inductive types) are not at all fundamental and I am confident this will change in the near future. Indexed inductive types give some of the neatest specifications. And proof assistants are useful not just for proving things, but of course also for the inherent value that the specification that you've proven provides to the user.
There will always be some necessary suffering. When you have a dependent type, all of your programs are not just programs but also proofs of some invariant on the program. And all of your proofs about those programs also carry proofs about your invariant proofs, hence everyone's favorite axioms for dealing with equalities of equalities. But that should be the only necessary suffering.
If you look at really experienced programmers using dependent types, I find that often what they are doing (probably subconsciously) is constructing all of their dependently typed programs in such a way that the proofs relating those programs later on will go through trivially, for example by reflexivity. It would be fun to see if there is a way to partially automate this without relying on any axioms.
Talia
On Tue, Mar 3, 2020 at 11:44 AM 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] Why dependent type theory?, (continued)
- Re: [Coq-Club] Why dependent type theory?, Pierre Courtieu, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Jeremy Dawson, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Makarius, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Thorsten Altenkirch, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Pierre-Marie Pédrot, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Thorsten Altenkirch, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Dominique Unruh, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Jeremy Avigad, 03/04/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Ettore Aldrovandi, 03/04/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Miguel Pagano, 03/05/2020
- Re: [Coq-Club] Why dependent type theory?, Pierre-Marie Pédrot, 03/04/2020
- Re: [Coq-Club] Why dependent type theory?, Talia Ringer, 03/05/2020
- Re: [Coq-Club] Why dependent type theory?, Josef Urban, 03/05/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, James McKinna, 03/06/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/06/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/06/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, James McKinna, 03/08/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/09/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Gabriel Scherer, 03/09/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Jeremy Avigad, 03/10/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Jeremy Avigad, 03/16/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Gabriel Scherer, 03/09/2020
- [Coq-Club] Type Theory vs. Set Theory – Re: [Agda] Why dependent type theory?, Ken Kubota, 03/09/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/09/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, James McKinna, 03/08/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/06/2020
- Re: [Coq-Club] [Agda] Why dependent type theory?, Martin Escardo, 03/06/2020
Archive powered by MHonArc 2.6.18.