[ library(cardinal) | Reference Manual | Alphabetic Index ]
# poss(?SetVariable, -Poss)

Obtaining the still possible elements of a set (lub\glb)
*SetVariable*
- A set variable.
*Poss*
- A set.

## Description

Poss is unified with the set of still possible elements of SetVariable
(i.e. its lub\glb).
If SetVariable is a set of sets and a union function attribute has been set,
then each element of Poss comes annotated with its respective length.

### Fail Conditions

Fails if Poss can not be unified with the current poss (lub\glb) of SetVariable.
### Resatisfiable

No.
## Examples

?- S `::[c]+[a,b], poss(S,P).
P = [a,b]
?- S `::[[c]]+[[a,b]], poss(S,P).
P = [[a,b]]
?- set(S, [],[[a,b],[b,c],[a,c],[b]],[union:[a,b,c]]), poss(S,P).
P = [[a, b] : 2, [a, c] : 2, [b] : 1, [b, c] : 2]

## See Also

glb / 2, glb_poss / 3, domain / 2, domain / 3, lub / 2, lub / 4