1. A method for closing an open system comprising the steps of: automatically generating a closed version of the open system including the steps of eliminating an interface to an environment of the open system, wherein said interface includes a set of inputs and a set of outputs, and said environment is such as to provide nondeterministically any input value of a set of possible input values whenever said open system takes an input from said set of inputs and that can take any output from said set of outputs produced by said open system; and eliminating from the generated closed version data values in the open system that depend on behavior of the environment and replacing flow control choices in the open system that depend on these eliminated data values by nondeterministic choices in the closed version.