coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Per Lindgren <Per.Lindgren AT ltu.se>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Induction over two non-mutual inductive terms
- Date: Tue, 8 Mar 2016 20:57:15 +0000
- Accept-language: sv-SE, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Per.Lindgren AT ltu.se; spf=Pass smtp.mailfrom=Per.Lindgren AT ltu.se; spf=Pass smtp.helo=postmaster AT mxi.ltu.se
- Ironport-phdr: 9a23:8LN07RJj2yNWRNn77dmcpTZWNBhigK39O0sv0rFitYgUL/XxwZ3uMQTl6Ol3ixeRBMOAu60C27ad6vq5EUU7or+/81k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZvIaytQ8iJ35vxh7z5oseKKyxzxxODIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46FppIZ8VvCwdKMhCLdcET4OMmYv5cStuwOJBV+E4WJZWWELmDJJBRLE5Vf0RMGinDH9s79F1TPSGczwQb8uVDLqu59mUlnMiSELOCQ09knTltE2l68N80HpnAB234OBONLdD/F5ZK6IJd4=
Hi
Without knowing details of your problem, it seems similar to a problem we
faced. Is it possible to define a “measure" (well founded relation) for i?
Best,
Per
> On 08 Mar 2016, at 21:41, scott constable
> <sdconsta AT syr.edu>
> wrote:
>
> Hi All,
>
> I have a simple recursive programming language implemented in coq with an
> evaluate function "eval". Since the language is non-normalizing, eval is
> recursively defined over a nat counter, "i" (I'm following the strategy
> given in the ImpCEvalFun chapter of SF). I'm currently trying to prove that
> whenever a term "tm" in the language is well-formed, no error can occur
> during a computation. So the theorem is as follows:
>
> Theorem NoFail : forall i tm, well_formed tm -> eval i tm <> Error.
>
> It seems that I need to induct over both i and tm, but doing something like
>
> induction i as [|i'], tm.
>
> always leads to unprovable subgoals, such as
>
> IHi' : eval i' (t_Plus t1 t2) <> Error
> ============================
> eval (S i') (t_Plus t1 t2) <> Error
>
> when what I really want would be something like
>
> IH1 : eval i' t1 <> Error
> IH2 : eval i' t2 <> Error
> ============================
> eval (S i') (t_Plus t1 t2) <> Error
>
> Any help would be much appreciated.
>
> Thanks,
>
> Scott Constable
>
- [Coq-Club] Induction over two non-mutual inductive terms, scott constable, 03/08/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, Per Lindgren, 03/08/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, scott constable, 03/08/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, roux cody, 03/08/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, scott constable, 03/08/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, Guillaume Melquiond, 03/09/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, scott constable, 03/24/2016
- Re: [Coq-Club] Induction over two non-mutual inductive terms, Per Lindgren, 03/08/2016
Archive powered by MHonArc 2.6.18.