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 \/ q) = T" which does
not allow to turn "q \/ p" into T just by rewriting.
Possible solutions would be either to take commutativity of disjunction
into account in the basic rewrites but this is not really easy to deal
with in a proper way since this brings the usual non-termination problems.
Another solution would be to consider a branching in the way rewriting
is done: one branch where p holds and one where q holds. But then this
goes way beyond rewriting.
Note for instance that neither FULL_SIMP_TAC nor RW_TAC can solve this
goal either.
Then considering leaving the goal unchanged, well it is a matter of
taste... I know it is the standard to leave the goal unchanged. But I
personally met many buggy situations that I hardly detected because HOL
{4,Light} was just allowing a rewrite (in the middle of a big script) to
leave a goal unchanged whereas a rewrite should have happened. It was so
hard to debug that I went to the conclusion to raise an exception
instead....
V.
On 12.02.2014 13:42, Ramana Kumar wrote:
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 exception?
On Mon, Feb 10, 2014 at 10:31 PM, Vincent Aravantinos
<[email protected]
<mailto:[email protected]>> wrote:
Solved. The new version is uploaded:
https://github.com/aravantv/HOL4-impconv
Thanks for the report! Was indeed a mistake in the translation
from HOL-Light/Ocaml to HOL4/SML...
V.
Le 10/02/2014 21:00, Vincent Aravantinos a écrit :
So indeed, the goal is solved immediatly in HOL Light... Gonna
work on it :-/
Le 10/02/2014 18:39, Vincent Aravantinos a écrit :
Hi Ramana,
- regarding your example: no, it is not the intended behavior.
I'll have a look asap.
- regarding the infinite loop: do you mean that it goes most of
the time into an infinite loop? This is not normal either...
Could you provide me with such examples?
The examples provided in the manual are a good starting point to
grasp a lil bit better the intended behaviour. Dunno if that
helps though.
Unfortunately, on a daily basis, I use only the HOL Light
version of it and could not test on real-life use cases the HOL4
version :-(
Cheers,
V.
On 10.02.2014 18:23, Ramana Kumar wrote:
Hi Vincent,
I have just now started trying to use your new tactic, and I am
having some trouble. When I call IMP_REWRITE_TAC[] on some
simple goal like ``p /\ q ==> q /\ p``, it raises an exception
(Unchanged). Is this the intended behaviour? That seems pretty
annoying.
Also, I have not yet found a non-trivial example on which it
does not appear to go into an infinite loop. But I haven't
looked far yet.
Cheers,
Ramana
On Tue, Jul 30, 2013 at 1:33 PM, Vincent Aravantinos
<[email protected]
<mailto:[email protected]>> wrote:
Hi Ramana,
I will make a few performance improvements on the HOL Light
version in the coming weeks hopefully, and then I plan
indeed to "translate" it to HOL4.
V.
2013/7/30 Ramana Kumar <[email protected]
<mailto:[email protected]>>
This looks great, Vincent.
Are you interested in working on a version for HOL4?
On Thu, Jul 11, 2013 at 11:08 AM, Vincent Aravantinos
<[email protected]
<mailto:[email protected]>> wrote:
Hi list,
I developed a new tactic that takes a theorem of
the form P ==> l = r and replaces l by r in a goal
adding whatever it needs to make it work properly
(typically conjunction with P; but can also be an
implication or even existentials).
This is a follow-up of the discussion I started a
few months ago
(http://sourceforge.net/mailarchive/message.php?msg_id=30133516),
the major difference being that it solves the
problem raised by Michael Norrish (i.e., it could
not work under the scope of a quantifier) in a
systematic and (in my opinion) elegant way.
This change entails that the tactic is much more
modular and thus can be chained very smoothly. Many
preprocessing options also allows it to be a
(sometimes more powerful) replacement for
REWRITE_TAC, SIMP_TAC and even MATCH_MP_TAC. Please
look at the (draft) manual for more info.
The code is available at:
https://github.com/aravantv/impconv (HOL Light only
for now)
To install, type:
# needs "target_rewrite.ml
<http://target_rewrite.ml>";;
The pdf manual is available in the directory "manual".
The development of this tactic required quite some
work that might be useful in other context. This is
undocumented for now but is described in a paper
which is currently under review.
Regards,
--
Vincent ARAVANTINOS - PostDoctoral Fellow -
Concordia University, Hardware
Verification Group
http://users.encs.concordia.ca/~vincent/
<http://users.encs.concordia.ca/%7Evincent/>
------------------------------------------------------------------------------
See everything from the browser to the database
with AppDynamics
Get end-to-end visibility with application
monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
hol-info mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/hol-info
--
Vincent ARAVANTINOS - PostDoctoral Fellow - Concordia
University, Hardware
Verification Group
http://users.encs.concordia.ca/~vincent/
<http://users.encs.concordia.ca/%7Evincent/>
--
Dr Vincent Aravantinos
Analysis and Design of Dependable Systems
fortiss GmbH <www.fortiss.org/en <http://www.fortiss.org/en>>
T +49 (0)89 360 35 22 33 | Fx +49 (0)89 360 35 22 50
Guerickestrasse 25 | 80805 Munich | Germany
--
Dr Vincent Aravantinos
Analysis and Design of Dependable Systems
fortiss GmbH <www.fortiss.org/en <http://www.fortiss.org/en>>
Guerickestrasse 25 | 80805 Munich | Germany
------------------------------------------------------------------------------
Androi apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience. Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
hol-info mailing list
[email protected] <mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/hol-info
--
Dr Vincent Aravantinos
Analysis and Design of Dependable Systems
fortiss GmbH <www.fortiss.org/en <http://www.fortiss.org/en>>
Guerickestrasse 25 | 80805 Munich | Germany
--
Dr Vincent Aravantinos
Analysis and Design of Dependable Systems
fortiss GmbH <www.fortiss.org/en>
T +49 (0)89 360 35 22 33 | Fx +49 (0)89 360 35 22 50
Guerickestrasse 25 | 80805 Munich | Germany
------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience. Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
hol-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info