[Agda] Automatic conversion between records and iterated Sigma types

Jacques Carette carette at mcmaster.ca
Tue Apr 14 19:37:52 CEST 2020


Thanks Jesper.

I don't think I fully follow though.  Is it possible to use reflection 
to take in a (nested) Sigma type (say the one for Monoid) and return the 
declaration of the associated record type? Could I take the name of the 
bound variables in that Sigma type as the labels of the resulting record 
type?  That would be perfect. I did not think that was possible. I would 
love to be wrong here!

Jacques

On 2020-04-14 4:07 a.m., Jesper Cockx wrote:
> Hi Jacques,
>
> Note that it *is* possible to generate fresh names from Agda's 
> reflection machinery, it is just not possible to access those 
> generated names from outside of the macro call. But if you're willing 
> to give just one name manually to the top-level definition (e.g. a 
> value of a record type containing fields for the iterated sigma type 
> itself, functions converting back and forth, and proofs about them) 
> then the current reflection machinery should work just fine. In 
> particular, there should be no need to generate new datatypes, which 
> is the main bottleneck in #3699.
>
> -- Jesper
>
> On Mon, Apr 13, 2020 at 9:20 PM Jacques Carette <carette at mcmaster.ca 
> <mailto:carette at mcmaster.ca>> wrote:
>
>     Very hard, I believe.  Lines 1113 and 1114
>
>        let u := fresh "u" in
>        let v := fresh "v" in
>
>     in particular.  See the comment by @jespercockx on
>     https://github.com/agda/agda/issues/3699.
>
>     Jacques
>
>     On 2020-04-13 3:11 p.m., Bas Spitters wrote:
>     > This is what the issig tactic does in the HoTT library. I don't know
>     > how difficult it is to convert it to agda.
>     > https://github.com/HoTT/HoTT/blob/master/theories/Basics/Overture.v
>     >
>     > On Mon, Apr 13, 2020 at 8:47 PM Martin Escardo
>     <m.escardo at cs.bham.ac.uk <mailto:m.escardo at cs.bham.ac.uk>> wrote:
>     >> Is it possible to write a tactic to convert between records and
>     >> equivalent iterated Sigma types? And, if so, to also produce
>     code to
>     >> establish their equivalence?
>     >>
>     >> Thanks,
>     >> Martin
>     >> _______________________________________________
>     >> Agda mailing list
>     >> Agda at lists.chalmers.se <mailto:Agda at lists.chalmers.se>
>     >> https://lists.chalmers.se/mailman/listinfo/agda
>     > _______________________________________________
>     > Agda mailing list
>     > Agda at lists.chalmers.se <mailto:Agda at lists.chalmers.se>
>     > https://lists.chalmers.se/mailman/listinfo/agda
>     _______________________________________________
>     Agda mailing list
>     Agda at lists.chalmers.se <mailto:Agda at lists.chalmers.se>
>     https://lists.chalmers.se/mailman/listinfo/agda
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.chalmers.se/pipermail/agda/attachments/20200414/f2911170/attachment.html>


More information about the Agda mailing list