NP-SPEC: An Executable Specification Language for Solving All Problems in NP