coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Andrew Gacek" <andrew.gacek AT gmail.com>
- To: Coq-Club <coq-club AT pauillac.inria.fr>
- Subject: [Coq-Club]Creating and using mutual induction schemes
- Date: Tue, 25 Jul 2006 15:49:59 -0500
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=JniOXEHUpX/1OkZhAHpb6GmlOnttxLdo2GUZPxuG9C0ADdqp6hLrVzqKtf8Ju0DN3QDMNMcOckgweh3wIHJLLWOxEk7gSUM63W0GEe1ZM7XH//rOUhqq50eC0qyDXmKWBPQC2+dZFF612paA+c0+FkKH2+h0mJ0V/p9oY5WmWwQ=
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Hi all,
I have two mutually recursive datatypes and I am trying to prove a
theorem about them which requires using mutual induction. I hope I've
defined the induction schemes, correctly, but I still don't know how
to apply them during the proof.
Inductive term : Set :=
| one : term
| app : term -> term -> term
| lam : term -> term
| clos : term -> env -> term
with env : Set :=
| id : env
| shift : env
| cons : term -> env -> env
| merge : env -> env -> env.
Scheme term_env_ind := Induction for term Sort Prop
with env_term_ind := Induction for env Sort Prop.
Theorem Inverse : forall (t : Sigma.term) (e : Sigma.env),
susp_to_sigma_term (sigma_to_susp_term t) = t /\
susp_to_sigma_env (sigma_to_susp_env e) (sigma_to_susp_nl e) = e.
Have I stated the induction schemes correctly? Is the theorem in
proper form to apply those schemes? If so, how?
Thanks,
Andrew Gacek
- [Coq-Club]Creating and using mutual induction schemes, Andrew Gacek
- Re: [Coq-Club]Creating and using mutual induction schemes, Pierre Courtieu
Archive powered by MhonArc 2.6.16.