Zulip Chat Archive

Stream: new members

Topic: proving simple inductive types are decidably equal


Edward Ayers (Nov 06 2018 at 15:08):

Suppose I make

inductive foo |A |B |C |D |E

How can I show thatfoo is decidably equal with minimal faff?

Floris van Doorn (Nov 06 2018 at 15:10):

@[derive decidable_eq] inductive foo |A |B |C |D |E

Edward Ayers (Nov 06 2018 at 15:10):

win for Lean

Edward Ayers (Nov 06 2018 at 15:10):

What else can I @[derive ...]?

Floris van Doorn (Nov 06 2018 at 15:12):

Not sure. In mathlib, if I search for derive, I only find derive decidable_eq and derive has_reflect.

Edward Ayers (Nov 06 2018 at 15:12):

I found has_sizeof in the wild

Scott Morrison (Nov 06 2018 at 21:26):

I would love to write some "functorial" derive handlers, for automatically showing constructions are functorial with respect to either morphisms in their arguments, or isomorphisms in their arguments. This would be part of a bigger program to do transport of structure.

Patrick Massot (Nov 06 2018 at 21:31):

Today Cyril worked quite a lot on transport stuff.

Scott Morrison (Nov 06 2018 at 21:52):

Ah, okay, what approach are they taking?

Patrick Massot (Nov 06 2018 at 21:53):

parametricity for free, or something like that

Patrick Massot (Nov 06 2018 at 21:53):

https://hal.inria.fr/hal-01559073

Scott Morrison (Nov 06 2018 at 21:55):

I would really like some feedback on my iso_induction approach sketched in the comments of https://github.com/leanprover/mathlib/issues/408, and the very initial branch at https://github.com/leanprover-community/mathlib/commit/fc31a8c81040f2a7e087df890f1c848ff6d34eff.

It needs more examples of definitions shown to be functorial in their arguments (hopefully automatically) before you can really see how it would work.


Last updated: Dec 20 2023 at 11:08 UTC