Thanks. That looks like the thing I need to get my proofs to be shorter.


On 08/30/2017 02:06 PM, michael.norr...@data61.csiro.au wrote:
I don’t know of anything that does exactly this, and it does look like an 
appealing thing to have.  An easy implementation (tested as per attachment) 
would be something like

   fun prove_hyp_tac th =
      SUBGOAL_THEN (lhand (concl th)) (fn hyp => STRIP_ASSUME_TAC (MP th hyp))

You would then get your effect with

   qspecl_then [`param1`, `param2`, `param3`] prove_hyp_tac test

You presumably have to provide the params to the theorem so that you get the 
right instantiation and a concrete P to prove.

Screen shot shows it in action.  Let me know if that’s not what you meant.

Michael

On 30/8/17, 21:40, "Heiko Becker" <hbec...@mpi-sws.org> wrote:

     Hello everyone,
I have a question on how to prove a theorem relying on lemmas with
     existentials in their conclusion:
Take an arbitrary theorem of the form val test = Q.prove (``!P Q R. P ==> ?m. Q m /\ R m``, cheat) where P may be arbitrarily complex. If I want to use the aforementioned theorem in another proof obtaining
     its conclusion as an additional hypothesis, the only way I can currently
     handle this is by writing the conclusion down explicitly and then
     discharging the proof with "by":
`?m. Q m /\ R m` by (irule test \\ ...) In Coq, I could just say destruct test as ... which would generate a subgoal for the P occurring on the left side of
     the arrow.
Is there a way of having similar behavior in HOL4, or at least to
     improve upon writing it all by hand?
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

------------------------------------------------------------------------------
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