The behaviour of PAT_ASSUM is described in the REFERENCE manual.  In short, it 
uses higher order pattern matching to do the match.  The pattern can be as 
detailed as you like and all variables that aren’t already “local constants” in 
the goal can be instantiated.

Michael

From: Haitao Zhang <zhtp...@gmail.com>
Date: Wednesday, 27 February 2019 at 15:23
To: hol-info <hol-info@lists.sourceforge.net>
Subject: Re: [Hol-info] Working with assumptions

Hi Michael,

Thanks for your help! I wasn't subscribed to the mailing list so I only saw 
your response in the mail archive. I have since properly signed up for the list.

I have a question on pattern matching on the assumptions: what is meant by a 
pattern and where is it defined? Does `!x. P` match all forall binders? Is only 
top level term matched or does it go into subterms? I am hoping to avoid 
copying all the assumptions I want into the proof.

With regard to pattern matching I have a related question on exists unique 
quantifiers, which I will ask in a new thread.

Thanks!
Haitao



On Mon, Feb 25, 2019 at 11:09 AM Haitao Zhang 
<zhtp...@gmail.com<mailto:zhtp...@gmail.com>> wrote:
Hi,

I just started HOL and am really enjoying it quite a bit. One difficulty I find 
during interactive tactic proof sessions is to get hold of and manipulate 
assumptions. Right now I find myself using sg to write new subgoals and then 
metis_tac[] to prove the baby steps that could be easily proved with MP if I 
know how to select an assumption to apply to another. Is this difficulty by 
design? Should I be writing sml code instead of going with existing tactics?

Concrete example: if assumption #n1 says a -> b and assumption #n2 says a how 
can I add b to the assumptions? Of course it may be a little more complicated 
as #n1 may be !x. a -> c /\ d /\ b and I may only want b.

Thanks,
Haitao Zhang
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to