Re: [Hol-info] New tactic: IMP_REWRITE_TAC

2014-02-12 Thread Ramana Kumar
OK, my original example now works. But I get exception Unchanged raised when I try IMP_REWRITE_TAC[] on the goal ``p \/ q == q \/ p``. I still would expect the tactic to be able to solve this goal, no? And if it can't then would it not be better to leave the goal unchanged rather than to raise an

Re: [Hol-info] Learning HOL Light

2014-02-12 Thread Bill Richter
I have a question about REWRITE_TAC. I was invited to speak at the conference https://ihp2014.pps.univ-paris-diderot.fr/doku.php?id=workshop_1 where John, Freek, Tobias Nipkow and Tom Hales are 4 of the 14 plenary speakers, and I hope folks here will help answer various HOL Light questions I

Re: [Hol-info] Learning HOL Light

2014-02-12 Thread Bill Richter
Here's a question about free variables and REWRITE_TAC (and other thmlist-tactics). Almost every usage of USE_THEN in the HOL Light sources is of the form USE_THEN label MATCH_MP_TAC Here's an example of a labeled assumption used in thmlist of MESON_TAC: let NSQRT_2 = prove (`!p q. p * p =

Re: [Hol-info] Learning HOL Light

2014-02-12 Thread John Harrison
Hi Bill, | I'm quite mystified that the REWRITE_TAC[DIST_SYM] only rewrote the | middle dist term Generally speaking, with constructs like REWRITE_TAC that apply rewrites repeatedly, there are special heuristics to deal with those that would obviously loop indefinitely. (This doesn't apply to

Re: [Hol-info] New tactic: IMP_REWRITE_TAC

2014-02-12 Thread Vincent Aravantinos
Hi Ramana, this is intended: what makes the tactic solve p /\ q == q /\ p is that it uses the context p /\ q when doing the rewriting. Therefore the theorems used for the rewrite are p = T and q = T, which indeed turns p /\ q into T /\ T. However with p \/ q the context only brings (p \/