  The objective of this article is to formalize the definition of NP problems.
  We construct a mathematical model of discrete problems as independence
systems with weighted elements. We introduce two auxiliary sets that
characterize the solution of the problem: the adjoint set, which contains the
elements from the original set none of which can be adjoined to the already
chosen solution elements; and the residual set, in which every element can be
adjoined to previously chosen solution elements.
  In a problem without lookahead, every adjoint set can be generated by the
solution algorithm effectively, in polynomial time.
  The main result of the study is the assertion that the NP class is identical
with the class of problems without lookahead. Hence it follows that if we fail
to find an effective (polynomial-time) solution algorithm for a given problem,
then we need to look for an alternative formulation of the problem in set of
problems without lookahead.
