Nondeterministic programming