coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Xavier Leroy <Xavier.Leroy AT inria.fr>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert)
- Date: Sat, 10 Oct 2020 19:36:38 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Xavier.Leroy AT inria.fr; spf=Pass smtp.mailfrom=xavier.leroy AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm1-f43.google.com
- Ironport-phdr: 9a23:faLmaRWrbdYnbEjnPMceDnvj/GvV8LGtZVwlr6E/grcLSJyIuqrYbByDt8tkgFKBZ4jH8fUM07OQ7/m/HzFbqs/Y6zgrS99lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmrrwjdrMkbjIVtJqos1xfErGZDdvhLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfMTQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklDsLOjgk+2zRl8d+jr9UoAi5qhNwzY7bYoGbOvR9cK3AY90VWXFMUdxNWyFbGI6wc5cDAugHMO1Fr4f9vVwOrR6mCAatHuzv1D5IiWHs3aYn1eouDxvG3AsgHtkTt3nbrc/6NLkTUe+r1qnE1zPNYO1M2Tf66InFaREhofeWXbJxa8Xd00cvFxncg1iWtIfqMC+b2P4XvGiH8+pvS/ivi2g/pgx1vDWi2schhpfJiI8WyV3J+jl0zokoKNGkSEN1bsKpHIZSui2EN4V7Td4uT390tSg1xbMLuJy2cTYXxJkowxPSbeGMfYaP4hLmTumRIDF4iWp4eLKlnBm9606gxfD9VsaozFZKry1Fkt/WuXAX1x3f8NSISvx4/ku53TaAzRrT6vtEIEAwi6XUNYQtwqIumZUPsUTOGDL9lkbujKKOaEko5uyl5/7kb7jmvJOQKpF4hwLkPqkhlMGyB/kzPBIUUGiB4+u80aXu/U3nT7VOif07iqzZv4rbJcQfv6K4DQpV3ps65xaxADqr3s4UnXYALFJCdxKHi5bmN0vSL/D/CPezm1WskDF1yPDaJrDtHInBI3zZnLrifbtx8VNQxBQwwNxF6J9ZBKkNIPfpVU/wsNzYAAU5Mwuxw+v/B9RyzJ0eWWORDa+DKq/StUGH5vgoI+iMf4IVtzP9JOIk5/7ql3M2hVgdfayx0ZsNdH+4BuhmI1meYXf0ntgBFn4KshMiQ+zulV2NSiVeZ22yXqI5/jE0EpiqDYbFRoC3gbyOxj23HpNMZjMONlfZGnDxMo6ARv0kaSSII8YnnCZXe6KmTtoR3A+vuRWy77d9Kfucrh0Rq5Puzp5R6vfUhDkz8yZ1BoKTyTfeHClPgmoUSmpuj+hEqktnxwLbiPQqs7ljDdVWoshxfEIiL5eFl757DcrzU0TPZIXREQv0cpCdGTg0C+kJ7ZoObkJ6QYjwixnC22+1BuZQmeDQQpMz9a3Y0j76IMMvky+XhplktEEvR450DUPjg6d+8wbJAIuQyheWkq+rceIX2yufrWo=
At any rate, Talia's message gave me an idea for a paper:
" Q.e.d. or starve? On the feeding habits of homotopy type theorists "
I still need a few more test subjects, though :-)
- Xavier
On Sat, Oct 10, 2020 at 7:24 PM Derek Dreyer <dreyer AT mpi-sws.org> wrote:
FYI: I don't think Talia was complaining: nerd sniping is fun. I
sometimes nerd-snipe myself.
https://www.urbandictionary.com/define.php?term=Nerd%20Sniping
Derek
On Sat, Oct 10, 2020 at 7:19 PM Larry Lee <llee454 AT gmail.com> wrote:
>
> Hey Talia,
>
> Sorry to hear that you were "nerd sniped" over this. It's possible to
> prove the lemma you presented below:
>
> 1 Require Import ProofIrrelevance.
> 1 Require Import FunctionalExtensionality.
> 2
> 3 Parameter A : Type.
> 4 Parameter B : Type.
> 5 Parameter f : A -> B.
> 6 Parameter g : B -> A.
> 7 Axiom section : forall a, g (f a) = a.
> 8 Axiom retraction : forall b, f (g b) = b.
> 9
> 10 Goal
> 11 forall (P : B -> Type) (a : A) (f0 : forall a : A, P (f a)),
> 12 eq_rect
> 13 (f (g (f a)))
> 14 P
> 15 (f0 (g (f a)))
> 16 (f a)
> 17 (retraction (f a)) =
> 18 f0 a.
> 19 Proof.
> 20 intros P a f0.
> 21 rewrite <- (f_equal_dep (fun a => P (f a)) f0 (section a)).
> 22 rewrite (proof_irrelevance (f (g (f a)) = (f a)) (retraction (f
> a)) (f_equal f (section a))).
> 23 set (b := f a).
> 24 set (a0 := g b).
> 25 set (b0 := f a0).
> 26 assert (a0 = a).
> 27 + exact (section a).
> 28 + assert (b0 = b).
> 29 - exact (retraction b).
> 30 - exact (eq_sym (rew_map P f (section a) (f0 a0))).
> 31 Qed.
>
> I don't drink, but a pizza would be nice.
>
> - Larry Lee
> (http://larrylee.tech)
>
> On 10/10/20, Talia Ringer <tringer AT cs.washington.edu> wrote:
> > Thanks all, love the thought processes too, and happy to ship some beer or
> > dessert or get it next conference :)
> >
> > On Sat, Oct 10, 2020, 7:53 AM Jason Gross <jasongross9 AT gmail.com> wrote:
> >
> >> I have not yet looked at Gaëtan's proof, but here is the intuition:
> >> What you have is a sort of incoherent equivalence. What would make
> >> your proof easier is having some version of [section] such that
> >> [forall a, f_equal f (section a) = retraction (f a)], so that you were
> >> dealing with a coherent equivalence instead. Since your proof goal
> >> only uses [retraction], it should be possible to "adjust" [section] so
> >> that it satisfies this equation; I suspect that this is what most of
> >> Gaëtan's proof is about. Once you have this additional lemma, your
> >> goal is quite straight forward: supposing you have this lemma as [H],
> >> you can solve your goal with [rewrite <- H; generalize (section a);
> >> generalize (g (f a)); intros; subst; reflexivity.]
> >>
> >> The underlying intuition that I had here is that the thing getting in
> >> the way of the "naive proof" is that you can't just destruct an
> >> equality [e] of type [f a0 = f a], because you can't generalize over
> >> the two sides. But since f is an equivalence, HoTT tells us that we
> >> can get that [e = ap f <something>] (i.e., [e = f_equal f
> >> <something>], where <something> is going to be [ap g e] adjusted so
> >> the endpoints line up. Once you get this, you can just destruct the
> >> <something>, and you're golden.
> >>
> >> (Note that if your goal also mentioned [section], then you'd almost
> >> surely be sunk without having an extra hypothesis which related
> >> [section] and [retraction].)
> >>
> >> On Sat, Oct 10, 2020 at 4:00 AM Gaëtan Gilbert
> >> <gaetan.gilbert AT skyskimmer.net> wrote:
> >> >
> >> > It's proved. HoTT is the only place I know to get lemmas about equality
> >> from so that's what I used, but this is axiom less so can be done without
> >> HoTT too.
> >> >
> >> > Thought process:
> >> > - eq_rect is complicated, let's turn it into transport to simplify the
> >> goal
> >> > this worked but is not actually useful in the end
> >> > - maybe there's a fancy destruct which will work (simple proofs about
> >> equality are all about the well chosen destruct)
> >> > this went nowhere fast
> >> > - maybe I can construct a counterexample using univalence on boolean
> >> negation
> >> > obviously this couldn't work
> >> > - this looks like the incomplete IsEquiv from HoTT where we can
> >> construct some fancy equality proofs to get the full IsEquiv stuff
> >> > let's look at the construction to see if I get any ideas
> >> > a bit of messing about then leads to the solution
> >> >
> >> > Gaëtan Gilbert
> >> >
> >> > On 10/10/2020 08:11, Talia Ringer wrote:
> >> > > Hello friends,
> >> > >
> >> > > I got nerd sniped this morning on a proof task I've been at for like
> >> 11 hours. Most of the proof obligations are done now, but I ended up
> >> stuck
> >> at one particular proof obligation that I'm not sure how to solve, or if
> >> it
> >> is solvable in general. But also I need to work on job applications and
> >> normal last year of grad school things, and I haven't eaten dinner. So if
> >> you help me out with this one proof obligation, I'll give you appropriate
> >> credit and also get you a beer or dessert.
> >> > >
> >> > > For real. I don't have technical mentors or local expertise to
> >> > > consult.
> >> > >
> >> > > Essentially, I have two types:
> >> > >
> >> > > A : Type
> >> > >
> >> > > B : Type
> >> > >
> >> > > that are equivalent:
> >> > >
> >> > > f : A -> B
> >> > >
> >> > > g : B -> A
> >> > > section : forall a, g (f a) = a.
> >> > > retraction : forall b, f (g b) = b.
> >> > >
> >> > >
> >> > > I know literally nothing else about my types or my equivalence. *I
> >> want to know if it is possible to solve this proof obligation:*
> >> > >
> >> > > *P : B -> Type
> >> > > a : A
> >> > > f0 : forall a : A, P (f a)
> >> > > ______________________________________(1/1)
> >> > > eq_rect (f (g (f a))) P (f0 (g (f a))) (f a) (retraction (f a)) =
> >> f0 a*
> >> > >
> >> > >
> >> > > (I have already solved this proof obligation:
> >> > >
> >> > > a : A
> >> > > ______________________________________(1/1)
> >> > > eq_rect (f (g (f a))) (fun _ : B => A) (g (f a)) (f a)
> >> > > (retraction
> >> (f a)) = a
> >> > >
> >> > > Literally just "rewrite retraction. apply section." works. But that
> >> didn't help me, and I also couldn't get Coq to use the same tactics.)
> >> > >
> >> > > I can't figure out whether this is me being really bad at equalities
> >> of equalities and dependent rewrites, or whether there is something we
> >> must
> >> know about A, B, or our equivalence for this to hold, or whether there is
> >> an additional axiom we must assume for this to hold in general. And it's
> >> 11:00 PM and I haven't eaten dinner, so time to ask you all:
> >> > >
> >> > > * Is this provable? If so, how? (And why am I so bad at equalities
> >> of equalities?)
> >> > > * If it is not, can you explain why?
> >> > > * Is there anything I could assume about A and B to make it
> >> > > provable?
> >> > > * Is there anything I could assume about f, g, section, or
> >> retraction to make it provable?
> >> > >
> >> > > Hopefully someone else finds this fun, too. Or really likes beer.
> >> > >
> >> > > Talia
> >> > >
> >> > >
> >> > >
> >>
> >
- [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Talia Ringer, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Gaëtan Gilbert, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Jason Gross, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Talia Ringer, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Larry Lee, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Larry Lee, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Jason Gross, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Derek Dreyer, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Xavier Leroy, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Robbert Krebbers, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Bas Spitters, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Robbert Krebbers, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Xavier Leroy, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Larry Lee, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), jonikelee AT gmail.com, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Bas Spitters, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Larry Lee, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Talia Ringer, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Jason Gross, 10/10/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Talia Ringer, 10/12/2020
- Re: [Coq-Club] Is this provable? (I'll give you credit and beer/dessert), Gaëtan Gilbert, 10/10/2020
Archive powered by MHonArc 2.6.19+.