comp.lang.ada
 help / color / mirror / Atom feed
* Proving B given that A >= 0 -> B and A < 0 -> B
@ 2012-09-03 14:19 Ben Hocking
  2012-09-04  8:43 ` Phil Thornley
  2012-09-04 14:23 ` Ben Hocking
  0 siblings, 2 replies; 3+ messages in thread
From: Ben Hocking @ 2012-09-03 14:19 UTC (permalink / raw)


I've run into this scenario a couple times and I have yet to come up with a simple solution. I have the following rule in my .rlu file:
  combine_cases2: PREDB may_be_deduced_from [A >= 0 -> PREDB, A < 0 -> PREDB, goal(checktype(A, number))].
(Evidently there's no boolean type in prolog, so I can't assert that PREDB is of type boolean. Correct me if I'm wrong on that.)

Unfortunately, this rule doesn't seem to be helping me on the following:
…
H15:   x - a * (y - z) div b >= 0 -> 
          my_fn(x - a * (y - z) div b)  <= c .
H16:   x - a * (y - z) div b < 0 -> 
          my_fn(x - a * (y - z) div b)  <= c .
…
       ->
C1:    my_fn(x - a * (y - z) div b) <= c .

I'm also open to solving this problem using "checker", but I'm not sure what rules I would use on the .siv file, either.

Thanks for any help or insight.

-Ben



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-09-12  0:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-03 14:19 Proving B given that A >= 0 -> B and A < 0 -> B Ben Hocking
2012-09-04  8:43 ` Phil Thornley
2012-09-04 14:23 ` Ben Hocking

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox