ADDED: library(sandbox): current_op/3 is safe.
improve explanation
simplify construction of counter network by removing an impossible case
Updated pengines
rebuild hashes only after all involved BDDs are merged

There is a mistake in the solver (which this commit should fix), found
with the following test case:

        :- use_module(clpb).

        sat(_)  --> [].
        sat(X*Y) --> [_], sat(X), sat(Y).
        sat(X+Y) --> [_], sat(X), sat(Y).
        sat(X#Y) --> [_], sat(X), sat(Y).

        eqs([], _).
        eqs(_, []).
        eqs([V|Vs], [A|As]) :- (   true ; sat(V =:= A) ), eqs(Vs, As).

        run(N) :-
                length(Ls, N),
                portray_clause(N),
                phrase(sat(Sat1), Ls),
                sat(Sat1),
                phrase(sat(Sat2), Ls),
                sat(Sat2),
                term_variables(Sat1, Vs1),
                term_variables(Sat2, Vs2),
                eqs(Vs1, Vs2),
                sat(Sat1 + Sat2),
                false.

        run :- run(_).

Example:

   ?- run.
   0.
   1.
   2.
   3.
   4.
   ERROR: Domain error: `reduced_ites' expected, found `...'

Results with the current commit are still pending.

In any case, tables cannot be cleared prematurely, when the nodes
still occur in some BDDs!
FIXED: Possible crash in dict_ordered()
FIXED: set_breakpoint/4: avoid exception if layout information is only
partially available.
DOC: ~ is not an operator.  Markus Triska.
Updated http
ENHANCED: CLP(B): Improved taut/2 when the second argument is instantiated.
DOC: Updated operator table.  Markus Triska.
Updated semweb
Comment error
ADDED: var_property/2, providing information about a variable for
goal_expansion/2.
Updated pengines
Updated pengines
Merge branch 'origin' into sandbox
portray_clause/1 and write_canonical/1 now work
ADDED: library(sandbox): flush_output/0 is safe.