<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 08/14/2017 07:00 PM, <a class="moz-txt-link-abbreviated" href="mailto:j.c.vandepol@utwente.nl">j.c.vandepol@utwente.nl</a> wrote:<br>
<blockquote type="cite"
cite="mid:D24CA7B5-F6D3-433C-9B2B-82489B25B706@utwente.nl">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Dear Enea,
<div class=""><br class="">
</div>
<div class="">Thanks, this is going to help a lot! Where can I
find a list of all PPL-Prolog predicates?</div>
<div class="">I didn’t find this particular one in</div>
<div class=""><a
href="http://bugseng.com/products/ppl/documentation//user/ppl-user-prolog-interface-1.2-html/domains_predicates.html"
class="" moz-do-not-send="true">http://bugseng.com/products/ppl/documentation//user/ppl-user-prolog-interface-1.2-html/domains_predicates.html</a></div>
<div class="">(well, apparently I can replace “Polyhedron” in <span
style="background-color: rgb(255, 255, 255);" class="">ppl_Polyhedron_difference_assign
by anything I need?)</span></div>
<div class=""><span style="background-color: rgb(255, 255, 255);"
class=""><br class="">
</span></div>
</blockquote>
<br>
Some domains support different sets of operators.<br>
<br>
If you have compiled the library from sources,<br>
then in the build directory, under interfaces/Prolog<br>
you should find several .hh files,<br>
where you can see the names of the foreign predicates.<br>
These header files are named according to the *instantiations* of
the abstract domains<br>
that have been enabled at configuration time (using
--enable-instantiations).<br>
By default (i.e., if you have enable the Prolog interface without
chosing instantiations)<br>
you should see something like the following<br>
<br>
ppl_prolog_BD_Shape_double.hh<br>
ppl_prolog_BD_Shape_mpq_class.hh<br>
ppl_prolog_BD_Shape_mpz_class.hh<br>
ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh<br>
ppl_prolog_domains.hh<br>
ppl_prolog_Double_Box.hh<br>
ppl_prolog_Grid.hh<br>
ppl_prolog_Octagonal_Shape_double.hh<br>
ppl_prolog_Octagonal_Shape_mpq_class.hh<br>
ppl_prolog_Octagonal_Shape_mpz_class.hh<br>
ppl_prolog_Pointset_Powerset_C_Polyhedron.hh<br>
ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh<br>
ppl_prolog_Polyhedron.hh<br>
ppl_prolog_Rational_Box.hh<br>
<br>
Hope this is enough to put you on the right track.<br>
<br>
Cheers,<br>
Enea.<br>
<br>
<blockquote type="cite"
cite="mid:D24CA7B5-F6D3-433C-9B2B-82489B25B706@utwente.nl">
<div class=""><span style="background-color: rgb(255, 255, 255);"
class="">
</span></div>
<div class="">Kind regards,</div>
<div class="">Jaco van de Pol</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">
<div>
<blockquote type="cite" class="">
<div class="">On 14 Aug 2017, at 18:53, Enea Zaffanella
<<a href="mailto:zaffanella@cs.unipr.it" class=""
moz-do-not-send="true">zaffanella@cs.unipr.it</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
<p class="">Hello.</p>
<p class="">The Pointset_Powerset domain has a
difference_assign operator.<br class="">
If I remember correctly, when instantiated to used
NNC_Polyhedron,<br class="">
the operator should be precise.</p>
<p class="">For instance:</p>
<p class="">pset1 = { A >= 0 }<br class="">
pset2 = { B = 0, A = 0 }<br class="">
pset1.difference_assign(pset2) = { A >= 0, B >
0 }, { A >= 0, -B > 0 }, { B = 0, A > 0 }</p>
<p class="">Examples of its use (in the C++ interface)
can be seen in</p>
<p class=""> tests/Powerset/<a
href="http://difference1.cc" class=""
moz-do-not-send="true">difference1.cc</a></p>
<p class="">where, however, it is instantiated with
the C_Polyhedron class.</p>
<p class="">As for the Prolog interface, this should
be the foreign predicate to call:<br class="">
</p>
<p class="">extern "C" Prolog_foreign_return_type<br
class="">
ppl_Pointset_Powerset_NNC_Polyhedron_difference_assign<br
class="">
(Prolog_term_ref t_lhs, Prolog_term_ref t_rhs);<br
class="">
</p>
<p class="">Let us know if it works as expected.<br
class="">
</p>
Cheers,<br class="">
Enea.<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">On 08/08/2017 02:39 PM, <a
class="moz-txt-link-abbreviated"
href="mailto:j.c.vandepol@utwente.nl"
moz-do-not-send="true">
j.c.vandepol@utwente.nl</a> wrote:<br class="">
</div>
<blockquote type="cite"
cite="mid:12810279-FC8D-4D45-A316-B8F94FF88EC5@utwente.nl"
class="">
Dear developers of PPL,
<div class=""><br class="">
</div>
<div class="">Is it possible to directly compute the
set-difference of two pointset powersets?</div>
<div class=""><br class="">
</div>
<div class="">In particular, I’m interested in the
precise complement; </div>
<div class="">convex difference approximations are
not sufficient for my case.</div>
<div class=""><br class="">
</div>
<div class="">Kind regards,</div>
<div class="">Jaco van de Pol</div>
<div class=""><br class="">
</div>
<div class=""><span style="orphans: 2; widows: 2;"
class=""><br class="">
</span></div>
<div class=""><span style="orphans: 2; widows: 2;"
class="">--</span>
<div class="">
<div style="letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; word-wrap:
break-word; -webkit-nbsp-mode: space;
-webkit-line-break: after-white-space;"
class="">
<div style="letter-spacing: normal;
text-align: start; text-indent: 0px;
text-transform: none; white-space: normal;
word-spacing: 0px;
-webkit-text-stroke-width: 0px; word-wrap:
break-word; -webkit-nbsp-mode: space;
-webkit-line-break: after-white-space;"
class="">
<span class="Apple-style-span"
style="border-collapse: separate;
font-variant-ligatures: normal;
font-variant-east-asian: normal;
font-variant-position: normal;
line-height: normal; border-spacing: 0px;">
<div style="word-wrap: break-word;
-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space;"
class="">
<div style="font-size: 12px;" class="">Prof.
Jaco van de Pol</div>
<div class="">University of Twente (NL)</div>
<div style="font-size: 12px;" class="">Formal
Methods and Tools </div>
<div style="font-size: 12px;" class=""><a
href="http://www.cs.utwente.nl/%7Evdpol" class="" moz-do-not-send="true">http://www.cs.utwente.nl/~vdpol</a></div>
</div>
</span></div>
</div>
</div>
<br class="">
</div>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<br class="">
<pre class="" wrap="">_______________________________________________
PPL-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:PPL-devel@cs.unipr.it" moz-do-not-send="true">PPL-devel@cs.unipr.it</a>
<a class="moz-txt-link-freetext" href="http://www.cs.unipr.it/mailman/listinfo/ppl-devel" moz-do-not-send="true">http://www.cs.unipr.it/mailman/listinfo/ppl-devel</a>
</pre>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
<div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; word-wrap: break-word;
-webkit-nbsp-mode: space; -webkit-line-break:
after-white-space;" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; word-wrap: break-word;
-webkit-nbsp-mode: space; -webkit-line-break:
after-white-space;" class="">
<span class="Apple-style-span" style="border-collapse:
separate; color: rgb(0, 0, 0); font-family: Helvetica;
font-style: normal; font-variant-ligatures: normal;
font-variant-caps: normal; font-variant-east-asian:
normal; font-variant-position: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: 2; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
border-spacing: 0px;
-webkit-text-decorations-in-effect: none;
-webkit-text-stroke-width: 0px;">
<div style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;"
class="">
<div style="font-size: 12px;" class="">--</div>
<div style="font-size: 12px;" class="">Prof. Jaco
van de Pol</div>
<div class="">University of Twente (NL)</div>
<div style="font-size: 12px;" class="">Formal
Methods and Tools </div>
<div style="font-size: 12px;" class=""><a
href="http://www.cs.utwente.nl/%7Evdpol"
class="" moz-do-not-send="true">http://www.cs.utwente.nl/~vdpol</a></div>
</div>
</span></div>
</div>
</div>
<br class="">
</div>
</div>
</blockquote>
<br>
</body>
</html>