From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Lost in translation (with SPARK user rules)
Date: Wed, 26 May 2010 12:09:17 +0200
Date: 2010-05-26T12:09:17+02:00 [thread overview]
Message-ID: <op.vda45rsfule2fv@garhos> (raw)
Lost in translation... do you know the movie ?
No, I'm joking, this is not about this 2002 movie, that's about SPARK, and
exactly, about translating some expressions in the rules language.
Previously, I have successfully added these rules, in an *.RLU file:
inequals(122): X/Y<1 may_be_deduced_from [ X>=0, Y>0, Y>X ].
inequals(123): X/Y<1 may_be_deduced_from [ X<=0, Y<0, Y<X ].
inequals(124): X/Y>(-1) may_be_deduced_from [ X>=0, Y<0, (-Y)>X ].
inequals(125): X/Y>(-1) may_be_deduced_from [ X<=0, Y>0, Y>(-X) ].
I wanted to do the same, for another kind of rule, about bitwise. The rule
I wanted to add is something like:
(X and 2 ** N) = 0 may be deduced from ((X / (2 ** N)) and 1) = 0
and the opposite
I tried with this:
bitwise(112): bit__and(X div (2**N), 1)=0 may_be_deduced_from [
(bit__and(X, 2**N)=0), X>=0, N>=0 ].
bitwise(113): bit__and(X, 2**N)=0 may_be_deduced_from [ (bit__and(X div
(2**N), 1)=0), X>=0, N>=0 ].
But this fails, although the simplifier does not returns me any syntax
error messages about this *.RLU file. This fails, because it cannot prove
something like this:
--# check ((Instance and 2) = 0) -> (((Instance / 2) and 1) = 0);
The latter should be directly deduced from the two previous rules if these
were OK. So I suppose something is wrong with these rules, and the
expression in “[...]” is not interpreted the way it seems to be to me.
One entertaining thing: I've noticed “and 1” is always replaced by “mod 2”
in the simplifier's *.SIV output files. As an example, the latter Check
clause is replaced by:
C1: bit__and(instance, 2) = 0 -> instance div 2 mod 2 = 0 .
next reply other threads:[~2010-05-26 10:09 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 10:09 Yannick Duchêne (Hibou57) [this message]
2010-05-26 10:38 ` Lost in translation (with SPARK user rules) Phil Thornley
2010-05-26 10:57 ` Yannick Duchêne (Hibou57)
2010-05-26 14:15 ` Pascal Obry
2010-05-26 14:28 ` Dmitry A. Kazakov
2010-05-26 19:28 ` Yannick Duchêne (Hibou57)
2010-05-26 20:14 ` Dmitry A. Kazakov
2010-05-26 21:14 ` Yannick Duchêne (Hibou57)
2010-05-26 21:15 ` Yannick Duchêne (Hibou57)
2010-05-26 22:01 ` Peter C. Chapin
2010-05-27 12:32 ` Mark Lorenzen
2010-05-27 18:34 ` Pascal Obry
2010-05-27 19:18 ` Yannick Duchêne (Hibou57)
2010-05-28 9:39 ` Maciej Sobczak
2010-05-28 11:57 ` SPARK and testing. Was: " Peter C. Chapin
2010-05-28 12:59 ` SPARK and testing Peter C. Chapin
2010-05-28 23:06 ` Yannick Duchêne (Hibou57)
2010-05-26 19:16 ` Lost in translation (with SPARK user rules) Yannick Duchêne (Hibou57)
2010-05-26 19:32 ` Pascal Obry
2010-05-26 20:56 ` Yannick Duchêne (Hibou57)
2010-05-26 22:06 ` Peter C. Chapin
2010-05-27 18:39 ` Pascal Obry
2010-05-26 22:17 ` Peter C. Chapin
2010-05-27 10:11 ` Sockets package in SPARK (Was: Lost in translation (with SPARK user rules)) Jacob Sparre Andersen
2010-05-27 18:41 ` Pascal Obry
2010-05-27 19:20 ` Yannick Duchêne (Hibou57)
2010-05-28 7:43 ` Sockets package in SPARK Jacob Sparre Andersen
2010-05-27 8:13 ` Lost in translation (with SPARK user rules) Yannick Duchêne (Hibou57)
2010-05-27 10:55 ` Yannick Duchêne (Hibou57)
2010-05-27 11:32 ` Yannick Duchêne (Hibou57)
2010-05-27 11:41 ` Phil Thornley
2010-05-27 12:42 ` Yannick Duchêne (Hibou57)
2010-05-27 12:22 ` stefan-lucks
2010-05-27 11:37 ` Yannick Duchêne (Hibou57)
2010-05-27 11:57 ` Phil Thornley
2010-05-27 12:36 ` Yannick Duchêne (Hibou57)
2010-05-27 13:38 ` Phil Thornley
2010-06-03 2:44 ` Yannick Duchêne (Hibou57)
2010-05-27 19:53 ` Warren
2010-05-29 23:03 ` Yannick Duchêne (Hibou57)
2010-05-30 6:55 ` Yannick Duchêne (Hibou57)
2010-05-30 9:30 ` Phil Thornley
2010-05-30 9:46 ` Yannick Duchêne (Hibou57)
2010-05-30 9:26 ` Phil Thornley
2010-05-30 9:57 ` Yannick Duchêne (Hibou57)
2010-06-01 5:42 ` Yannick Duchêne (Hibou57)
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox