Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Heterogenous lists and variable-arity constructors

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Heterogenous lists and variable-arity constructors


chronological Thread 
  • From: Adam Chlipala <adamc AT hcoop.net>
  • To: Roly Perera <roly.perera AT dynamicaspects.org>
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Heterogenous lists and variable-arity constructors
  • Date: Wed, 07 Jan 2009 08:22:50 -0500
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

Roly Perera wrote:
I get the feeling that what I actually need to do is define my App
constructor in terms of a function from fmember to terms, but the
problem seems to be instantiating term with the right type whilst
keeping the inductive type well-formed (i.e. avoiding 'Non strictly
positive occurrence of "term"').

I expect this is what you're looking for:
| App (ls: list type) (c: type): (forall c', fmember _ c' ls -> term c') -> term c.

Your original type for [App] doesn't look much like a usual application typing rule, in that it omits connections between the types of different parts, but I'm assuming that's a conscious simplification that you made.





Archive powered by MhonArc 2.6.16.

Top of Page