I suspect that the order of quantification in the goal is important, since
that controls how the induction predicate is instantiated. So try

  !Gamma A. Gm Gamma A ==> !Gamma'. ....

since that makes it explicit for the machinery.

Konrad.


On Tue, Jan 15, 2019 at 1:30 AM Chun Tian (binghe) <binghe.l...@gmail.com>
wrote:

> Hi,
>
> I think you should use HO_MATCH_MP_TAC (together with your induction
> theorem of “Gm”, of the form ``!Gm. X ==> P Gm``) in this case.  I only use
> Induct and Induct_on on simple variables like your Γ Γ’ A.
>
> —Chun
>
> > Il giorno 15 gen 2019, alle ore 14:49, Alexander Cox <
> u6060...@anu.edu.au> ha scritto:
> >
> > I am having an issue using Induct_on on a Hol_reln called Gm.
> >
> > If I try to use it on a trivial goal it works, e.g.
> >
> > > g `!Γ A. Gm Γ A ==> Gm Γ A`;
> > …
> > > e (Induct_on `Gm`);
> > OK..
> > 1 subgoal:
> > val it =
> >
> >
> >    (∀A. Gm {|A|} A) ∧ …
> >
> > but if I use on a useful goal such as:
> >
> > g `!Γ Γ' A. Gm Γ A ==> Gm (Γ' + Γ) A`;
> > …
> > e (Induct_on `Gm`);
> > OK..
> >
> > Exception raised at BasicProvers.Induct_on:
> > at BasicProvers.induct_on_type:
> > Type: :(α formula -> num) -> α formula -> bool is not registered in the
> types database
> >
> > Any ideas where I’m going wrong? Is the latter the goal in the wrong
> form? Where should I look to figure this out?
> >
> > Thank you,
> > Alex
> >
> > _______________________________________________
> > hol-info mailing list
> > hol-info@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/hol-info
>
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
>
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to