
<ConsistencyModule:> sorted(?Unsorted, ?Sorted)

   Sorted is a sorted permutation of Unsorted

Arguments
   Unsorted            Collection of N (domain) variables or integers
   Sorted              Collection of N (domain) variables or integers

Type
   library(gfd)

Description
    Declaratively: The two collections have the same length and Sorted is
    a sorted permutation of Unsorted.

    Operationally:  the elements in both collections are constrained such
    that their domains are consistent with the assumption that Sorted
    is the sorted version of Unsorted.

    One of the two arguments can be uninstantiated at call time.

    Any input variables which is not already a domain variable will be
    turned into a domain variable with default bounds.

    ConsistencyModule is the optional module specification to give the 
    consistency level for the propagation for this constraint: 
    gfd_bc for bounds consistency.

    This constraint is known as sort in the global constraint catalog,
    and is implemented using Gecode's sorted() constraint.



Modes and Determinism
   sorted(+, +)
   sorted(+, -)
   sorted(-, +)

Examples
   
[eclipse 2]: sorted([1,9,1,5,2|L], [1,1,1,2,5,9]).

L = [1]

[eclipse 3]:  sorted([1,9,1,5,2,1], S).

S = [1, 1, 1, 2, 5, 9]

[eclipse 4]: length(Xs,4), Xs::0..100, sorted(Xs,Ys), Xs = [8,20|_].

Xs = [8, 20, _694{[0 .. 100]}, _714{[0 .. 100]}]
Ys = [_774{[0 .. 8]}, _794{[0 .. 20]}, _814{[8 .. 100]}, _834{[20 .. 100]}]

[eclipse 5]: length(Ys,4), Ys::0..100, sorted(Xs,Ys), Ys = [8,20|_].

Ys = [8, 20, _694{[20 .. 100]}, _714{[20 .. 100]}]
Xs = [_832{[8 .. 100]}, _852{[8 .. 100]}, _872{[8 .. 100]}, _892{[8 .. 100]}]

    

See Also
   fd_global : sorted / 2, ic_global : sorted / 2, sorted / 3, ordered / 2
