The theorem float_add_relative is of the form

  ∀(a :(τ, χ) float) (b :(τ, χ) float). ..

and

  SPEC ``(fp64_to_float v):(52, 11) float``  float_add_relative

will only try to specialise values and not types. What you need is Drule.ISPEC, 
i.e.

  Drule.ISPEC ``fp64_to_float v : (52, 11) float`` float_add_relative

Alternatively you could use SPEC after manually using Thm.INST_TYPE to 
instantiate the type of float_add_relative.

Anthony

> On 8 Sep 2017, at 08:01, Heiko Becker <hbec...@mpi-sws.org> wrote:
> 
> Hello everyone,
> 
> I am trying to prove a theorem using the IEEE floating-point formalizations 
> of HOL4. In a proof, I need to apply the lemma 
> lift_ieeeTheory.float_add_relative. However neither match_mp_tac nor irule 
> are able to unify the lemma with the conclusion I want to show.
> 
> I tried instantiating variables by hand to see what happens. Trying the below 
> code fails with an error complaining about mismatched types in the conclusion:
> 
> SPEC ``(fp64_to_float v):(52, 11) float``  float_add_relative
> 
> 
> Can someone tell me what I a doing wrong in this case, since (52,11) float 
> should be unifiable with (τ, χ) float.
> 
> 
> 
> Thanks,
> 
> Heiko
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to