
I did not check what the PolyLib or Omega do, but {A=0} whould make more sense although it may cost more to achieve. We do not need to work on integer points only for this simplification, though, and I
Why are you talking about integer points?
The simplification could take into account the integer hull of the context to further reduce the system, but this would be combinatorially expensive.
don't think the PolyLib implements more than a bunch of special cases here (but I'm not at all familiar with that code).
There's no special cases in the PolyLib implementation that I'm aware of.
OK. I probably misunderstood the discussion on the big bunch of PolyLib code dedicated to this simplification in a context. We need to understand why it is so big, as Sebastian said :-).
I see. However, I am interested in understanding the real needs of Cloog independently from what PolyLib does.
It's hard to define formally,
It's defined in section 4.8 of PI-785 as the largest set C such that C \cap B = A \cap B (where A is the original set and B is the context). So, if you use this definition, it should return { A <= 0 }.
This is right, and is the most canonical definition I can see. However it is not necessarily CLooG-optimal, e.g., when the largest set is described by a union where it could be reduced into single half-space intersection.
However, if you give it { A = 0 } as the original set, PolyLib will or at least used to return { A = 0 }. I don't think I've ever fixed this, given that there was effectively zero interest.
As to CLooG, IMHO, it doesn't really matter which of the two you give, although to a human reader, { A = 0 } may be more intuitive.
Right, but I would recommend the PPL to follow the canonical definition above, as it has always been considered sufficient so far.
Albert