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

Obtaining both the glb and the still possible elements of a set
*SetVariable*
- A set variable.
*Glb*
- A set.
*Poss*
- A set.

## Description

Glb is unified with the (greatest) lower bound of SetVariable.
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 Glb can not be unified with the current glb of SetVariable or
if Poss can not be unified with the current poss (lub\glb) of SetVariable.
### Resatisfiable

No.
## Examples

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

## See Also

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