Re: [Hol-info] Tactic

2018-06-30 Thread Freek Wiedijk
Hi Dylan, What I would try in HOL Light: # g `a ==> b /\ c ==> d /\ e ==> k`;; Warning: Free variables in goal: a, b, c, d, e, k val it : goalstack = 1 subgoal (1 total) `a ==> b /\ c ==> d /\ e ==> k` # e (REPEAT DISCH_TAC);; val it : goalstack = 1 subgoal (1 total) 0 [`a`] 1 [`b /\ c`]

Re: [Hol-info] Tactic

2018-06-29 Thread Konrad Slind
Here's an old-school solution: fun locate P left [] = NONE | locate P left (h::t) = if P h then SOME (rev left, h, t) else locate P (h::left) t; fun ASM_CONJ_TAC (asl,c) = case locate is_conj [] asl of NONE => raise ERR "ASM_CONJ_TAC" "no conj in assums" | S

Re: [Hol-info] Tactic

2018-06-29 Thread Heiko Becker
Hello, On 06/28/2018 11:44 PM, Dylan Melville wrote: Also, the version Im using is HOL - Light On Jun 28, 2018, at 5:38 PM, Dylan Melville wrote: Is there a tactic for splitting conjoined assumptions into separate assumptions? In HOL-Light you can try using CONJ_PAIR[1] for an assumption o

Re: [Hol-info] Tactic

2018-06-28 Thread Dylan Melville
Also, the version Im using is HOL - Light > On Jun 28, 2018, at 5:38 PM, Dylan Melville wrote: > > Is there a tactic for splitting conjoined assumptions into separate > assumptions? -- Check out the vibrant tech commu

Re: [Hol-info] Tactic

2018-06-28 Thread Mario Xerxes Castelán Castro
In HOL4, “fs[]” may do what you want. On 28/06/18 16:38, Dylan Melville wrote: > Is there a tactic for splitting conjoined assumptions into separate > assumptions? > -- > Check out the vibrant tech community on one of the

Re: [Hol-info] tactic works only once

2013-06-17 Thread Mark
I think a good start to tracking it down would be to remove tactics from the end of 't' (starting with 't2') until it doesn't fail. Then check that the resulting goal states are alpha-equivalent. If they are then the culprit should be the next tactic, otherwise carry on going back until the goal

Re: [Hol-info] tactic works only once

2013-06-17 Thread Ramana Kumar
Yes, I was not claiming that b() is the problem. I am just curious as to why the tactic fails when I apply it a second time, since I can't find any explicit use of references, and I think I'm only using tactics from bossLib (and lcsymtacs). On Mon, Jun 17, 2013 at 1:58 PM, Konrad Slind wrote: >

Re: [Hol-info] tactic works only once

2013-06-17 Thread Ramana Kumar
t (top_goal()); val it = ([], fn): goal list * validation t (top_goal()); Exception- HOL_ERR {message = "first subgoal not solved by second tactic", origin_function = "THEN1", origin_structure = "Tactical"} raised I didn't think there were any refs touched by t, but I'll have a look more closely..

Re: [Hol-info] tactic works only once

2013-06-16 Thread Konrad Slind
> Could you perhaps tell me what could possibly be behind the behaviour above? Superficial answer: refs Do you get the same behaviour if you invoke t away from the goalstack? t (top_goal()) = t (top_goal()) Konrad. On Sun, Jun 16, 2013 at 3:03 PM, Ramana Kumar wrote: > I have run into st