Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Fwd: "Lean is like Coq but better"

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Fwd: "Lean is like Coq but better"


Chronological Thread 
  • From: "jonikelee AT gmail.com" <jonikelee AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Fwd: "Lean is like Coq but better"
  • Date: Tue, 7 Jan 2020 22:15:42 -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-f175.google.com
  • Ironport-phdr: 9a23:40zXdhBaXsvhSgdY4Q4qUyQJP3N1i/DPJgcQr6AfoPdwSPT6pMbcNUDSrc9gkEXOFd2Cra4d0KyM7v+rBDBIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfL1/IA+ooQjRtMQajotvJ6kswRbVv3VEfPhby3l1LlyJhRb84cmw/J9n8ytOvv8q6tBNX6bncakmVLJUFDspPXw7683trhnDUBCA5mAAXWUMkxpHGBbK4RfnVZrsqCT6t+592C6HPc3qSL0/RDqv47t3RBLulSwKMSMy/mPKhcxqlK9VrhKvqQJizYDXYo6VOv1wcazBct0VXmdBQsRcWjZdDo6mc4cDEewMNvtYoYnnoFsOqAOzCQeuBOPozD9Ih3z20rM+0+s/Dw7LxwMgH9cUv3TVqNX5LrsdUeewzKXG0D7OaPFW2TD76IjJcRAuv/WMUqxufsfKxkkvEhnKjlSUqYD/IzyV0eENvnGd4uF9Vuyvk3Yqpx9trjWr3MshiYnEipgIxl3F6Sl12ps5KN+4RUJjf9KpEYdcuzyfOodrRs4tX2RltSk7x7EapZK2eTUGxZclyhPadvOIboqF7xzmWeuTIDp3nnBodbeliBuy80WtyujxW8qp3FlQrCdIlMTHuGoX2BzJ8MeHT+Nw/ke/1jaL0ADe8uRELlo1larfMpIh26IwmocKvUTNAyP7mkX7gLWZdkUj/eio5ODnbav8qpCAMI90jxnyMqUomsOhHeQ1KhYCU3Sf9Oim17Du/Vf1TKhLg/EqiKXVrZLXKMQDqq68GQBV04Ij6xilDzeh1dQVhXsHLFVDeBKGjIjmJVXOL+7mAvqkjFSslS1kx/HCPrH7HprNKX3DnK/7fblh805c1BYzzddH6p1IDbEBOev/VVP1tNzFFRA0KBe0wubiCNVlzIwSQ2OPAqmDMKPTq1CE/OwvI/PfLLMS7T36Mr0u4+PkpX4/g14UO6ezjrUNb3XtVPZhJUSabH7hj/8OFG4Lukw1S+mgwAmAVjhSZHu2Uq8U6TQyCYbgBoDGENP+yIed1Tu2S8UFLltNDUqBRC+xJte0HswUYSfXGfdP1zkNVLyvUYgkjEj8uwrzyr4hJe3RqHRB6MDTkeNt7uiWrikcsDx5C8PHjTOIRmBw23oUHno4hf8i50N6zViH3O5zhPkKTYUPtcMMaR8zMNvn98I/E8r7A1uTcdKASVLgSdKjU2k8

I have to mull over Mario's response, but I think there are usages of
Coq's Prop that require it to be constructive (non-LEM). My own work
relies on this - it also rests on the fact that Prop will be erased,
leaving Type as the program, but uses Prop to carry around simple
computation as well as propositions in order to prove more complex
computation in Type. I'd be curious if the same technique is possible
in Lean.

On Tue, 7 Jan 2020 21:20:33 -0500
Mario Carneiro
<di.gama AT gmail.com>
wrote:

> On Tue, Jan 7, 2020 at 8:51 PM
> jonikelee AT gmail.com
> <jonikelee AT gmail.com>
> wrote:
>
> > [decloaking from lurker mode to add my $0.02]
> >
> > Does having LEM built into Lean interfere with the user's ability to
> > exploit the Curry-Howard isomorphism?
> >
> > If so, that seems like a bad trade off: a small convenience for a
> > small group of people (Fields Medal wanabees) that imposes a large
> > inconvenience for a large group of people (software engineers).
> >
>
> I haven't found that Lean's ontology poses any serious issues for
> writing software, and if anything I think it helps. Lean makes a
> sharp distinction between data (in Type) and proofs (in Prop), and
> proofs are erased during code execution. So if you build a sorting
> function of type forall l : list A, { l2 : list A | l2 is a sorted
> permutation of l }, then the "list A" part is data, which can be
> executed assuming it doesn't use the axiom of choice in its
> definition, and the "l2 is a sorted permutation of l" part is a
> proof, so it completely disappears during execution. You can use
> choice if you want to prove this fact, as it is just a conventional
> mathematical assertion; it will not interfere with the computability
> of the overall function.
>
> So it's a half-baked kind of constructivism, that is constructive
> only in the places where it actually matters to producing code. That
> seems like a reasonable compromise to me. In particular, LEM is not
> executable in any case, because it is a Prop; you can't case analyze
> on it unless you are proving another Prop and this too will be
> erased. Whenever you use "if" in Lean it infers decidability of the
> predicate in question, and this proof of decidability lives in Type
> and can be executed.



Archive powered by MHonArc 2.6.18.

Top of Page