coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Hugo Herbelin <herbelin AT margaux.inria.fr>
- To: coq-club AT pauillac.inria.fr, herbelin AT margaux.inria.fr, sacerdot AT students.cs.unibo.it
- Cc: asperti AT cs.unibo.it, lpadovan AT cs.unibo.it, schena AT cs.unibo.it
- Subject: Re: A question on positivity conditions
- Date: Mon, 31 Jan 2000 16:35:31 +0100 (MET)
> Thank you for the answer, but I still don't understand it.
>
> > The constant X _occurs strictly positively_ in T in the
> > following cases:
> >
> > -- T=(X t1 ... tn) and X does not occur in any of ti
> > -- T=(I a1 ... am t1 ... tn) where I is an inductive type not mutually
> > defined with m parameters and arity of length n, and X does not occur
> > in any of the ti but each constructor of I satisfies the weak
> > positivity condition after substituting the parameters by a_1 ... a_n
>
> What does "each constructor of I satifies the weak positivity condition
> after substituting the parameters by a_1 ... a_n" mean?
It means, if I has constructors ci:(x1:T1;...;xm:Tm)Ui, that X must
occur weakly positively in each Ui where the x1...xm are replaced by
the a1...am.
> Which name should respect the weak positivity condition in
> the types of the constructors of I? If it is I (as we understand) then we
> could not find an example in which the condition could be false. Moreover,
> this example seem to respect the condition but is not accepted by Coq
> (reasonable!):
>
> Inductive t : Set := k : (list (nat -> t)) -> t.
In Coq V6.3.1, it _is_ accepted.
> Accordingly to your definition, the weak positivity condition must hold on
>
> nil : (list (nat -> t))
> cons: (nat -> t) -> (list (nat -> t)) -> (list (nat -> t))
>
> and we think it does (w.r.t. list).
Yes it does : t occurs weakly positively in the instantiated types
of nil and cons.
Hugo
- Re: A question on positivity conditions, Claudio Sacerdoti Coen
- <Possible follow-ups>
- Re: A question on positivity conditions, Hugo Herbelin
Archive powered by MhonArc 2.6.16.