[PPL-devel] The Action Language Verifier and the Parma Polyhedra Library

Roberto Bagnara bagnara at cs.unipr.it
Tue Jan 7 17:48:29 CET 2003


Dear Ken,

we have started studying your code in order to understand your needs
and to improve the PPL.  To start with, we have modified parmiface.c
so as to use the `Polyhedron::check_universe()' method (this results
in cleaner code that is also more efficient).

kmixter at longshot.com wrote:
> You may also want to download the latest version 0.2 for full
> documentation and examples.

We did that, in order to have more examples to test with and we
ran across a bug.  We have modifies ALV's main program so as to
catch standard exceptions and print them.  With this modification,
here is what happens:

$ ~/composite/composite/obj-linux/action -r statechart.al
Module main
Local variables
main.Office.0 of type 1
main.Occupants.0 of type 1
main.Light.0 of type 1
main.turn_off of type 1
main.turn_on of type 1
main.exit of type 1
main.enter of type 1
main.count of type 4
Formal variables
items size 4
items size 4
****************
domain variables
type 0
main.0.Office.0
main.0.Occupants.0
main.0.Light.0
main.0.turn_off
main.0.turn_on
main.0.exit
main.0.enter
type 1
main.0.count
Exception caught:
PPL::NNC_Polyhedron::inters_assign_and_min(y):
this->space_dimension() == 2, y->space_dimension() == 1.
Capacity : 10003
Total references : 0
Hits             : 0 ( nan %)
Misses           : 0 ( nan %)
Collisions        : 0 ( nan %)
  Stats

The important bit is

Exception caught:
PPL::NNC_Polyhedron::inters_assign_and_min(y):
this->space_dimension() == 2, y->space_dimension() == 1.

This says that NNC_Polyhedron::intersection_assign_and_minimize()
has been called over two polyhedra of different dimensions.
The only call to this method is in parmiface.c in the function
Polyhedron *DomainIntersection(Polyhedron *d1, Polyhedron *d2, int).
Do you know what might go wrong?

Meanwhile, please find attached the patch file for the changes
mentioned above (without the change to `main()' you would see
an abort instead of the description of the caught exception).
Notice that this patch assumes you have already applied the
path we sent you a few days ago.
All the best

     Roberto

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: composite-parma.patch2
URL: <http://www.cs.unipr.it/pipermail/ppl-devel/attachments/20030107/6a59dc24/attachment.ksh>


More information about the PPL-devel mailing list