[ library(cardinal) | Reference Manual | Alphabetic Index ]

# union_var(?SetVariable, ?UnionVar)

Union of a set of sets

SetVariable
  A Set (variable or ground) of sets.
UnionVar
  A Set (variable or ground).

## Description

UnionVar is the union of sets in SetVariable. If UnionVar is given (as a ground set or a set variable), then SetVariable is constrained to have such union. If UnionVar is a free variable, then it is unified with the set's union as a set variable or a ground set (if it is already known).

union_var/2 can thus be used either to declare (or constrain) a union function or to retrieve it.

### Fail Conditions

Fails if UnionVar can not be the union of SetVariable.

### Resatisfiable

No.

## Examples

    ?- S `::[]..[[a],[b]], union_var(S,U).
    ?- S `::[]..[[a],[b],[a,b]], union_var(S,[a,b]).
    ?- union_var([[a,b],[b,c]], U).
    U = [a,b,c]

## See Also

set / 4, sets / 4, cardinality / 2