Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Non-uniform parametric inductive types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Non-uniform parametric inductive types


chronological Thread 
  • From: roconnor AT theorem.ca
  • To: Coq Club <coq-club AT pauillac.inria.fr>
  • Subject: [Coq-Club] Non-uniform parametric inductive types
  • Date: Wed, 9 Mar 2005 11:22:40 -0500 (EST)
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

Let me modify my previous question as follows.  Why must the parameters in
a parametric inductive definition be uniform?  For example, why should the
following declaration rejected:

Inductive term (A:Set) : Set :=
 | Var : A -> term A
 | App : term A -> term A -> term A
 | Fun : term (option A) -> term A.

The data type is still well-founded.  I would expect the generated
elimination rule to have a type such as:

term_rec : forall
(P:forall A:Set, term A -> Set)
(A:Set)
(var_case:forall a:A, P A (Var A a))
(app_case:forall a b:term A, P A a -> P A b -> P A (App A a b))
(fun_case:forall a:term (option A), P (option A) a -> P A (Fun A a))
(a:term A),
(P A a).

Would modifying Coq to allow non-uniform parametric inductive types lead
to an inconsistency or other badness?

-- 
Russell O'Connor                                      <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''




Archive powered by MhonArc 2.6.16.

Top of Page