Constrained supremum and supremum operators are introduced to obtain a gene
ral procedure for computing supremal elements of upper semilattices. Exampl
es of such elements include supremal (A; B)-invariant subspaces in linear s
ystem theory and supremal controllable sublanguages in discrete-event syste
m theory. For some examples, we show that the algorithms available in the l
iterature are special cases of our procedure. Our iterative algorithms may
also provide more insight into applications; in the case of supremal contro
llable subpredicate, the algorithm enables us to derive a lookahead policy
for supervisory control of discrete-event systems.