[Agda] Positive but not strictly positive types

Frédéric Blanqui frederic.blanqui at inria.fr
Fri Apr 10 08:40:13 CEST 2015


Hello.

Speaking of Coq: because Prop is impredicative, one usually 
distinguishes between:
1. small inductive types where Type-level constructor arguments are 
parameters
2. big inductive types

Coquand's counter-example is a big inductive type.

For this reason, strong elimination on big inductive types is forbidden 
in Coq.

Adding small inductive types preserves termination and logical 
consistency in system F or Fomega. A reference to Mendler's work has 
already been given. For some more recent works, see Abel et al. More 
generally, you can consider monotone types (positivity is a syntactic 
condition ensuring monotony): see Matthes and Uustalu works. Adding 
dependent types doesn't change anything.

So, there should be no problem in Agda.

Frédéric.


Le 09/04/2015 18:07, Vilhelm Sjöberg a écrit :
> On 2015-04-09 11:49, Andrés Sicard-Ramírez wrote:
>> Retaking the discussion in
>> http://thread.gmane.org/gmane.comp.lang.agda/6008, it's known that
>> using *negative* types it's possible
>>
>> a) to prove absurdity or
>> b) to write non-terminating terms.
>>
>> Is there some example in *Agda* of a positive but not strictly
>> positive type which allows a) or b)?
> I'm interested in the answer to this question also. If I correctly 
> understand what Thierry Coquand wrote in the thread you mention, the 
> answer is no; because Agda is predicative allowing positive datatypes 
> would be sound. But it would be interesting to see this fleshed out more.
>
> I wrote up a blog post about using non-strictly positive datatypes to 
> get a paradox in Coq: 
> http://vilhelms.github.io/posts/why-must-inductive-types-be-strictly-positive/
>
> Vilhelm
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda



More information about the Agda mailing list