[Agda] [HoTT] Re: Why do we need judgmental equality?
streicher at mathematik.tu-darmstadt.de
streicher at mathematik.tu-darmstadt.de
Sun Feb 17 12:35:04 CET 2019
> For me the idea of inductive vs coinductive or how I called this a while
> ago data vs codata is an important basic intuition which comes before
> formal model constructions. Types are defined by constructors or by
> destructors, eg coproducts are defined by constructors while functions are
> defined by destructors, namely application. That is a function is
> something you can apply to arguments obtaining a result. Lambda is a
> derived construction, I can construct a function if I have a method to
> compute the result. Similarily natural numbers and lists are given by
> constructors, while streams are defined by destructors, to give a stream
> means to be able to say what its head and its tail are. And that is
> perfectly right Sigma types can be either given by a constructor or by
> destructors so in this sense they are twitters.
>
> There are reductions which just means that certain type formers are
> universal in that we can define all other from them, e.g. function types
> together with some inductive types are sufficient to derive a certain
> class of codata types. That doesn't mean that the dichotomy between data
> and codata isn't an important basic intuition.
>
> On 17/02/2019, 09:19, "Michael Shulman" <shulman at sandiego.edu> wrote:
>
> Well, I'm not really convinced that coinductive types should be
> treated as basic type formers, rather than simply constructed out of
> inductive types and extensional functions. For one thing, I have no
> idea how to construct coinductive types as basic type formers in
> homotopical models. I think the issue that you raise, Thorsten, could
> be regarded as another argument against treating them basically, or at
> least against regarding them as really "negative" in the same way that
> Pis and (negative) Sigmas are.
>
> And as for adding random extra strict equalities pertaining certain
> positive types that happen to hold in some particular model, Matt, I
> would say similarly that the general perspective gives yet another
> reason why you shouldn't do that. (-:
>
But function types are neither inductive nor conductive. Only N-> (-) ist
coinductive.
In presence of function types most coinductive types can be implemented.
Maybe coinductive is a style of programming but nothing really foundational.
Thomas
More information about the Agda
mailing list