Within satisfaction problems or any decision or other problem which is reducible to a satisfaction problem, the invention tracks the paths along which implications propagate and identifies conditional contradictions and subsequently moves the contradictions back down the implicational paths toward assumptions or other unreasoned assertions in order to expel the contradictions. The action is completed in less time than is incurred by existing methods and thus provides a performance improvement to the devices, software, or processes which address such problems. Such problems are addressed by devices, software, and processes related to many technical fields, including: ore refining; pipeline routing; yarn manufacture; fabric cutting; sawyering; mechanical component design; structural design of data processing systems; design and analysis of circuits or semiconductor masks; inspection and guarding of containers, pipes, and galleries; sensor array operations; orbital satellite operations; data compression; chemical analysis; design and analysis of proteins.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method performed by at least one computer processor for solving a problem in NP, the method comprising: moving contradictions through a proximal space defined by a rhizomatic network that consists of prevailing paths of implication responsive to counter-asserting value predicates, counter-assertions being assertions of value predicates that negate other assertions, which causes the prevailing paths of negated assertions to be removed from the prevailing paths of remaining assertions, the remaining assertions including the counter-assertions, thereby producing counter-asserted value predicates that do not create a contradiction in any constraint that remains in the prevailing path of the counter-assertion; collecting first data representing the prevailing paths of implication and the prevailing paths of motion of contradictions; using the first data to inform choices of direction so that contradictions move toward locations in the proximal space where no validly reasoned disagreement is recorded; and choosing contradictions to be resolved and terms to be counter-asserted in a way that excludes dithering. 2. The method of claim 1, wherein choosing comprises choosing in a way that excludes dithering that exceeds one traversal of a constraint in the problem representation per assumption. 3. The method of claim 1, wherein moving the contradictions through the proximal space comprises moving the contradictions through contiguous positions in the proximal space. 4. The method of claim 1, wherein first data comprises a list of destinations in the prevailing path, and at least one of farness counts and nearness counts; and wherein choosing the terms to be counter-asserted comprises choosing a term to be counter-asserted according to a Nearest Destination method. 5. The method of claim 1, wherein first data comprises a list of destinations in the prevailing path, a list of conditional prevailing assertions in the prevailing path, and farness counts; and wherein choosing the terms to be counter-asserted comprises choosing a term to be counter-asserted according to a Farthest Reversal method. 6. The method of claim 1, wherein choosing the contradictions to be resolved comprises choosing a contradiction that occupies a constraint that provided a prevailing assertion that restricted a term in the constraint of the contradiction that was most recently resolved. 7. A computing device comprising: a non-transitory memory; and a processor; wherein the non-transitory memory comprises signals representing a plurality of computer-readable instructions; and wherein the processor is adapted to execute the plurality of computer-readable instructions to perform a method for solving a problem in NP, the method comprising: moving contradictions through a proximal space defined by a rhizomatic network that consists of prevailing paths of implication responsive to counter-asserting value predicates, counter-assertions being assertions of value predicates that negate other assertions, which causes the prevailing paths of negated assertions to be removed from the prevailing paths of remaining assertions, the remaining assertions including the counter-assertions, thereby producing counter-asserted value predicates that do not create a contradiction in any constraint that remains in the prevailing path of the counter-assertion; collecting first data representing the prevailing paths of implication and the prevailing paths of motion of contradictions; using the first data to inform choices of direction so that contradictions move toward locations in the proximal space where no validly reasoned disagreement is recorded; and choosing contradictions to be resolved and terms to be counter-asserted in a way that excludes dithering. 8. The computing device of claim 7, wherein choosing comprises choosing in a way that excludes dithering that exceeds one traversal of a constraint in the problem representation per assumption. 9. The computing device of claim 7, wherein moving the contradictions through the proximal space comprises moving the contradictions through contiguous positions in the proximal space. 10. The computing device of claim 7, wherein first data comprises a list of destinations in the prevailing path, and at least one of farness counts and nearness counts; and wherein choosing the terms to be counter-asserted comprises choosing a term to be counter-asserted according to a Nearest Destination method. 11. The computing device of claim 7, wherein first data comprises a list of destinations in the prevailing path, a list of conditional prevailing assertions in the prevailing path, and farness counts; and wherein choosing the terms to be counter-asserted comprises choosing a term to be counter-asserted according to a Farthest Reversal method. 12. The computing device of claim 7, wherein choosing the contradictions to be resolved comprises choosing a contradiction that occupies a constraint that provided a prevailing assertion that restricted a term in the constraint of the contradiction that was most recently resolved. 13. A computing device comprising: a component adapted to represent a rhizomatic network of prevailing assertions; a component adapted to create assumptions; a component adapted to perform a process of implication; a component adapted to perform a process that locates assertions, the constraints of assertions, and contradicted constraints; a component adapted to implement a stack and a history of popped elements; a component adapted to initialize the history of popped elements; a component adapted to use the stack to search the rhizomatic network by back-tracking in a depth-first manner through the rhizomatic network starting by pushing a first restricted term, and popping whenever the top term in the stack is not restricted by a prevailing assertion or whenever there are no further terms to explore in the prevailing constraint that restricts the term that was just below the top term in the stack, excluding at least one specified value from the search that if asserted does or would restrict the top term in the stack; a component adapted to compare assertions encountered with assertions in the history of popped elements in order to identify branches of the search that have already been successfully explored; a component adapted to compare assertions encountered in the search with assertions lower in the stack in order to identify illegitimate destinations and loop assertions; a component adapted to track and append a nearness count to elements on the stack; a component adapted to initialize a least nearness count to be zero; a component adapted to maintain a least nearness count among legitimate destinations and to record said first restricted term as associated with the least nearness count when the least nearness count is replaced; a component adapted to maintain a count of said first restricted terms for which legitimate destinations are identified; a component adapted to maintain a record of an assertion negated by a most recent counter-assertion; a component adapted to identify a value predicate of a term that may be counter-asserted; a component adapted to identify a set of assertions to negate given a counter-asserted value predicate; a component adapted to cause, for the constraint of the recorded negated assertion, if any, and otherwise for any contradicted constraint, the least nearness count to be initialized, cause the history of popped elements to be initialized, cause the prevailing path of each first prevailing assertion that supports a restriction in a contradicted constraint to be searched excluding second assertions wherein the second assertions are assertions that would be negated by counter-asserting conditionally restricted terms in the contradicted constraint that are other than said first restricted terms, and counter-assert a value predicate for a term in the contradicted constraint for which a restriction is not fully supported, if any, and otherwise counter-assert a value predicate for the term in the contradicted constraint that is restricted by the assertion that is associated with the recorded least nearness count; and records that the counter-assertion is unconditional if there are no legitimate destinations for any term in the contradicted constraint other than the counter-asserted term, and a component adapted to record that the counter-assertion is non-prevailing if the counter-assertion is already identified as a loop assertion or if the conjunctive convergence of extant assertions for the same variable represents a subset of the counter-asserted value-predicate, and otherwise record that the counter-assertion is prevailing, and if the counter-assertion is prevailing, negate any assertions that disagree with the counter-asserted value predicate and may restrict terms of the same variable in constraints that are not asserting, and repeat these actions until no contradictions exist or there is no term in the contradicted constraint that is not restricted and that restriction is fully supported by unconditional assertions. 14. A method performed by at least one computer processor for solving a problem in NP, the method comprising: representing a rhizomatic network of prevailing assertions; creating assumptions; performing a process of implication; performing a process that locates assertions, the constraints of assertions, and contradicted constraints; implementing a stack and a history of popped elements; initializing the history of popped elements; using the stack to search the rhizomatic network by back-tracking in a depth-first manner through the rhizomatic network starting by pushing a first restricted term, and popping whenever the top term in the stack is not restricted by a prevailing assertion or whenever there are no further terms to explore in the prevailing constraint that restricts the term that was just below the top term in the stack, excluding at least one specified value from the search that if asserted does or would restrict the top term in the stack; comparing assertions encountered with assertions in the history of popped elements in order to identify branches of the search that have already been successfully explored; comparing assertions encountered in the search with assertions lower in the stack in order to identify illegitimate destinations and loop assertions; tracking and appending a nearness count to elements on the stack; initializing a least nearness count to be zero; maintaining a least nearness count among legitimate destinations and to record said first restricted term as associated with the least nearness count when the least nearness count is replaced; maintaining a count of said first restricted terms for which legitimate destinations are identified; maintaining a record of an assertion negated by a most recent counter-assertion; identifying a value predicate of a term that may be counter-asserted; identifying a set of assertions to negate given a counter-asserted value predicate; causing, for the constraint of the recorded negated assertion, if any, and otherwise for any contradicted constraint, the least nearness count to be initialized, causing the history of popped elements to be initialized, causing the prevailing path of each first prevailing assertion that supports a restriction in a contradicted constraint to be searched excluding second assertions wherein the second assertions are assertions that would be negated by counter-asserting conditionally restricted terms in the contradicted constraint that are other than said first restricted terms, and counter-asserting a value predicate for a term in the contradicted constraint for which a restriction is not fully supported, if any, and otherwise counter-asserting a value predicate for the term in the contradicted constraint that is restricted by the assertion that is associated with the recorded least nearness count; and records that the counter-assertion is unconditional if there are no legitimate destinations for any term in the contradicted constraint other than the counter-asserted term, and recording that the counter-assertion is non-prevailing if the counter-assertion is already identified as a loop assertion or if the conjunctive convergence of extant assertions for the same variable represents a subset of the counter-asserted value-predicate, and otherwise recording that the counter-assertion is prevailing, and if the counter-assertion is prevailing, negating any assertions that disagree with the counter-asserted value predicate and may restrict terms of the same variable in constraints that are not asserting, and repeating these actions until no contradictions exist or there is no term in the contradicted constraint that is not restricted and that restriction is fully supported by unconditional assertions. 15. A computing device comprising: a component adapted to represent a rhizomatic network of prevailing assertions; a component adapted to create assumptions; a component adapted to perform a process of implication; a component adapted to perform a process that locates assertions, the constraints of assertions, and contradicted constraints; a component adapted to store a full reason including farness counts for a prevailing assertion; a component adapted to perform branch-addition of two prevailing assertions with an offset of farness counts for one of the added branches, thereby producing a full reason; a component adapted to perform branch-subtraction of an assertion from a second full reason, thereby producing one of a basis, a co-basis, and a full reason; a component adapted to perform a cascade of branch-subtractions from a co-basis for value predicates that match between a basis and the co-basis to produce a pruned one of a co-basis and a compressed co-basis, wherein the cascade is ordered according to ascending farness counts in the co-basis; a component adapted to compare the value predicate of an assertion with the value predicates in the full reason of the assertion in order to identify illegitimate destinations or that the assertion is a loop assertion; a component adapted to choose a legitimate destination from the legitimate destinations in the union of the full reasons of prevailing assertions that conjunctively converge to provide determinants that restrict first terms in a contradicted constraint; a component adapted to maintain a count of said first terms for which chosen legitimate destinations are identified; a component adapted to maintain a record of an assertion negated by a most recent counter-assertion; and a component adapted to identify a value predicate of a term that may be counter-asserted; a component adapted to identify a set of assertions to negate given a counter-asserted value predicate; a component adapted to counter-assert, for the constraint of the recorded negated assertion, if any, and otherwise for any contradicted constraint, a value predicate for a term in the contradicted constraint for which a restriction is not fully supported, if any, and otherwise cause a destination to be chosen and counter-assert a value predicate for a term in the contradicted constraint that is restricted by a prevailing assertion that has a full reason that contains the chosen destination, and cause a full reason to be recorded for the counter-assertion, and record that the counter-assertion is unconditional if there are no legitimate destinations in the full reason of the counter-assertion; a component adapted to record that the counter-assertion is non-prevailing if the counter-assertion is identified as a loop assertion or if the conjunctive convergence of extant assertions for the same variable represents a subset of the counter-asserted value-predicate, and otherwise record that the counter-assertion is prevailing, and if the counter-assertion is prevailing, negate any assertions that disagree with the counter-asserted value predicate and may restrict terms of the same variable in constraints that are not asserting and branch-add the full reason of the counter-assertion to every other full reason that represents the counter-asserted value predicate as a pseudo-assumption, and otherwise discard the full reason of the counter-assertion, and repeat these actions until no contradictions exist or there is no term in the contradicted constraint that is not restricted and that restriction is fully supported by unconditional assertions, wherein the full reason of the counter-assertion is produced as the full reason of an implicated assertion from which the prevailing assertions that are negated by the counter-assertion are branch-subtracted, and wherein the specific term that is counter-asserted is the only term in the contradicted constraint that is restricted by a prevailing assertion that has the chosen destination in its full reason if there is only one such term, and otherwise the specific term that is counter-asserted is a term other than the term most recently restricted among terms of the contradicted constraint that are restricted by prevailing assertions that have the chosen destination in their full reasons, and when there are more than two terms of the contradicted constraint that are restricted by prevailing assertions that have the chosen destination in their full reasons, then the specific term that is counter-asserted is a term that has the greatest farness count in its pruned co-basis. 16. The computing device of claim 7, wherein the component adapted to perform branch-subtraction of the assertion from the second full reason is further adapted to perform branch-subtraction of the assertion from a first full reason. 17. A method performed by at least one computer processor, the method comprising: representing a rhizomatic network of prevailing assertions; creating assumptions; performing a process of implication; performing a process that locates assertions, the constraints of assertions, and contradicted constraints; storing a full reason including farness counts for a prevailing assertion; performing branch-addition of two prevailing assertions with an offset of farness counts for one of the added branches, thereby producing a full reason; performing branch-subtraction of an assertion from a second full reason, thereby producing one of a basis, a co-basis, and a full reason; performing a cascade of branch-subtractions from a co-basis for value predicates that match between a basis and the co-basis to produce a pruned one of a co-basis and a compressed co-basis, wherein the cascade is ordered according to ascending farness counts in the co-basis; comparing the value predicate of an assertion with the value predicates in the full reason of the assertion in order to identify illegitimate destinations or that the assertion is a loop assertion; choosing a legitimate destination from the legitimate destinations in the union of the full reasons of prevailing assertions that conjunctively converge to provide determinants that restrict first terms in a contradicted constraint; maintaining a count of said first terms for which chosen legitimate destinations are identified; maintaining a record of an assertion negated by a most recent counter-assertion; identifying a value predicate of a term that may be counter-asserted; identifying a set of assertions to negate given a counter-asserted value predicate; counter-asserting, for the constraint of the recorded negated assertion, if any, and otherwise for any contradicted constraint, a value predicate for a term in the contradicted constraint for which a restriction is not fully supported, if any, and otherwise cause a destination to be chosen and counter-asserting a value predicate for a term in the contradicted constraint that is restricted by a prevailing assertion that has a full reason that contains the chosen destination, and causing a full reason to be recorded for the counter-assertion, and recording that the counter-assertion is unconditional if there are no legitimate destinations in the full reason of the counter-assertion; recording that the counter-assertion is non-prevailing if the counter-assertion is identified as a loop assertion or if the conjunctive convergence of extant assertions for the same variable represents a subset of the counter-asserted value-predicate, and otherwise recording that the counter-assertion is prevailing, and if the counter-assertion is prevailing, negating any assertions that disagree with the counter-asserted value predicate and may restrict terms of the same variable in constraints that are not asserting and branch-adding the full reason of the counter-assertion to every other full reason that represents the counter-asserted value predicate as a pseudo-assumption, and otherwise discarding the full reason of the counter-assertion, and repeating these actions until no contradictions exist or there is no term in the contradicted constraint that is not restricted and that restriction is fully supported by unconditional assertions, wherein the full reason of the counter-assertion is produced as the full reason of an implicated assertion from which the prevailing assertions that are negated by the counter-assertion are branch-subtracted, and wherein the specific term that is counter-asserted is the only term in the contradicted constraint that is restricted by a prevailing assertion that has the chosen destination in its full reason if there is only one such term, and otherwise the specific term that is counter-asserted is a term other than the term most recently restricted among terms of the contradicted constraint that are restricted by prevailing assertions that have the chosen destination in their full reasons, and when there are more than two terms of the contradicted constraint that are restricted by prevailing assertions that have the chosen destination in their full reasons, then the specific term that is counter-asserted is a term that has the greatest farness count in its pruned co-basis. 18. The method of claim 17, wherein performing branch-subtraction of the assertion from the second full reason comprising performing branch-subtraction of the assertion from a first full reason. 19. A method, performed by at least one computer processor, for improving time requirement of solving of a logical or numerical expression by resolving conditional contradictions arising during the solving of an expression, the expression being formed of constraints, each constraint including one or more terms each of which representing a variable and optionally an explicit value predicate for that variable, the solving of the expression including determining whether the expression is satisfiable by a set of variable values or unsatisfiable when there are no sets of variable values that satisfy the expression, the method comprising: receiving, as part of the expression being input to the computer, unconditional assertions regarding value predicates of zero or more of the variables; making assumptive assertions regarding value predicates of at least one of the variables; making assertions of terms regarding value predicates for other ones of the variables, the assertions being made by the constraints responsive to the restrictions imposed by the unconditional assertions or the assumptions, a constraint asserting a term being an implicated assertion; making assertions of other terms regarding value predicates for other ones of the variables, the assertions being made by other constraints responsive to the restrictions imposed by one of the unconditional assertions and the assumptions and the implicated assertions, a constraint asserting a term being an implicated assertion; setting a first assertion as a prevailing assertion unless the first assertion is assumptive or constitutes a loop assertion, a loop assertion being an assertion that reiterates a second assertion in the prevailing path of the first assertion, the prevailing path of the implicated assertion of a first constraint being comprised of other assertions that lead to and produce the conditional portion of restrictions on the terms of the first constraint and which are prevailing assertions or assumptions or loop assertions; setting value predicates for the variables as determinants responsive to one of the unconditional assertions, the assumptive assertions, and the implicated assertions, the variables not having a determinant that represents a single variable value being free variables; repeating a process of implication until no further assertions are made or a count of the contradictions is not zero, the process of implication being an iteration of the making of assumptions, the making of assertions, the setting of assertions as prevailing assertions, and the setting of value predicates for the variables as determinants; making counter-assertions, counter-assertions being assertions of terms in contradicted constraints regarding value predicates that do not disagree with a conjunction of other unconditional assertions but may disagree with a conjunction of other unconditional assertions and formerly or currently extant conditional assertions, contradictions arising when determinants restrict all terms in a constraint; negating disagreeing conditional assertions responsive to a current counter-assertion, restricting terms that are the assertions being negated and restricting other terms of the same variable, producing contradictions in the constraints of the negated implicated assertions or negated former counter-assertions, and resolving the contradiction in the constraint of the current counter-assertion; maintaining first data for each conditional prevailing assertion by one of: (1) keeping track of assumptions and pseudo-assumptions and at least one of farness counts, nearness counts, fulfilled counts, and unfulfilled counts associated with restricting assertions in each prevailing path that leads to and produces each conditional prevailing assertion, and (2) extracting first data by back-tracking to accumulate first data functionally equivalent to a representation of legitimate destinations and farness counts or nearness counts associated with legitimate destinations in each prevailing path that leads to and produces each conditional prevailing assertion, legitimate destinations being any assumptions or those pseudo-assumptions that do not disagree with a prevailing assertion that is less far from said first prevailing assertion, pseudo-assumptions being terms in the prevailing paths of said first assertion that were restricted but the restriction is currently not fully supported by another prevailing assertion or a conjunctive convergence of other prevailing assertions; choosing terms in contradicted constraints to counter-assert, responsive to the first data, thereby to move the contradictions toward legitimate destinations by using a Nearest Destination method or a Farthest Reversal method, legitimate destinations being one of assumptions and pseudo-assumptions where the lack of full support for a restriction of a pseudo-assumption by other prevailing assertions is not entirely the result of a negation caused by a third prevailing assertion for the same variable in the same prevailing path that leads to and produces a fourth prevailing assertion that restricts a term in the contradicted constraint and which may be the same as the third prevailing assertion; making counter-assertions be one of conditional and unconditional, responsive to the first data, conditional contradictions being conditioned on the assumptions and pseudo-assumptions that are legitimate destinations; reporting that the expression is satisfied if the count of the free variables is zero and the count of extant contradictions is zero; reporting that the expression is unsatisfiable if an unconditional contradiction is encountered regarding one of the constraints of the expression, an unconditional contradiction being a contradiction resulting from the unconditional assertions; and repeating a process of resolving contradictions until reporting that the expression is satisfied or unsatisfiable, the process of resolving contradictions being an iteration of choosing terms to counter-assert, counter-asserting terms, negating disagreeing conditional assertions, discovering whether counter-assertions are conditional or unconditional, repeating a process of implication, and maintaining first data. 20. A computing device comprising: a non-transitory memory; and a processor; wherein the non-transitory memory comprises signals representing a plurality of computer-readable instructions; and wherein the processor is adapted to execute the plurality of computer-readable instructions to perform a method for improving time requirement of solving of a logical or numerical expression by resolving conditional contradictions arising during the solving of an expression, the expression being formed of constraints, each constraint including one or more terms each of which representing a variable and optionally an explicit value predicate for that variable, the solving of the expression including determining whether the expression is satisfiable by a set of variable values or unsatisfiable when there are no sets of variable values that satisfy the expression, the method comprising: receiving, as part of the expression being input to the computer, unconditional assertions regarding value predicates of zero or more of the variables; making assumptive assertions regarding value predicates of at least one of the variables; making assertions of terms regarding value predicates for other ones of the variables, the assertions being made by the constraints responsive to the restrictions imposed by the unconditional assertions or the assumptions, a constraint asserting a term being an implicated assertion; making assertions of other terms regarding value predicates for other ones of the variables, the assertions being made by other constraints responsive to the restrictions imposed by one of the unconditional assertions and the assumptions and the implicated assertions, a constraint asserting a term being an implicated assertion; setting a first assertion as a prevailing assertion unless the first assertion is assumptive or constitutes a loop assertion, a loop assertion being an assertion that reiterates a second assertion in the prevailing path of the first assertion, the prevailing path of the implicated assertion of a first constraint being comprised of other assertions that lead to and produce the conditional portion of restrictions on the terms of the first constraint and which are prevailing assertions or assumptions or loop assertions; setting value predicates for the variables as determinants responsive to one of the unconditional assertions, the assumptive assertions, and the implicated assertions, the variables not having a determinant that represents a single variable value being free variables; repeating a process of implication until no further assertions are made or a count of the contradictions is not zero, the process of implication being an iteration of the making of assumptions, the making of assertions, the setting of assertions as prevailing assertions, and the setting of value predicates for the variables as determinants; making counter-assertions, counter-assertions being assertions of terms in contradicted constraints regarding value predicates that do not disagree with a conjunction of other unconditional assertions but may disagree with a conjunction of other unconditional assertions and formerly or currently extant conditional assertions, contradictions arising when determinants restrict all terms in a constraint; negating disagreeing conditional assertions responsive to a current counter-assertion, restricting terms that are the assertions being negated and restricting other terms of the same variable, producing contradictions in the constraints of the negated implicated assertions or negated former counter-assertions, and resolving the contradiction in the constraint of the current counter-assertion; maintaining first data for each conditional prevailing assertion by one of: (1) keeping track of assumptions and pseudo-assumptions and at least one of farness counts, nearness counts, fulfilled counts, and unfulfilled counts associated with restricting assertions in each prevailing path that leads to and produces each conditional prevailing assertion, and (2) extracting first data by back-tracking to accumulate first data functionally equivalent to a representation of legitimate destinations and farness counts or nearness counts associated with legitimate destinations in each prevailing path that leads to and produces each conditional prevailing assertion, legitimate destinations being any assumptions or those pseudo-assumptions that do not disagree with a prevailing assertion that is less far from said first prevailing assertion, pseudo-assumptions being terms in the prevailing paths of said first assertion that were restricted but the restriction is currently not fully supported by another prevailing assertion or a conjunctive convergence of other prevailing assertions; choosing terms in contradicted constraints to counter-assert, responsive to the first data, thereby to move the contradictions toward legitimate destinations by using a Nearest Destination method or a Farthest Reversal method, legitimate destinations being one of assumptions and pseudo-assumptions where the lack of full support for a restriction of a pseudo-assumption by other prevailing assertions is not entirely the result of a negation caused by a third prevailing assertion for the same variable in the same prevailing path that leads to and produces a fourth prevailing assertion that restricts a term in the contradicted constraint and which may be the same as the third prevailing assertion; making counter-assertions be one of conditional and unconditional, responsive to the first data, conditional contradictions being conditioned on the assumptions and pseudo-assumptions that are legitimate destinations; reporting that the expression is satisfied if the count of the free variables is zero and the count of extant contradictions is zero; reporting that the expression is unsatisfiable if an unconditional contradiction is encountered regarding one of the constraints of the expression, an unconditional contradiction being a contradiction resulting from the unconditional assertions; and repeating a process of resolving contradictions until reporting that the expression is satisfied or unsatisfiable, the process of resolving contradictions being an iteration of choosing terms to counter-assert, counter-asserting terms, negating disagreeing conditional assertions, discovering whether counter-assertions are conditional or unconditional, repeating a process of implication, and maintaining first data. 21. A method performed by at least one computer processor executing computer program instructions stored on at least one non-transitory computer-readable medium, the method comprising: (A) converting a problem definition into an expression, wherein the expression comprises a plurality of variables and at least one constraint; (B) selecting a plurality of assumed value predicates for the plurality of variables of the expression; (C) propagating implications of the assumed value predicates; (D) identifying any apparent contradictions of the implications of the assumed value predicates; (E) determining, for each identified contradiction, whether that contradiction can be moved towards a corresponding location where it will resolve as an implication; (F) for each apparent contradiction which can be so moved, moving that apparent contradiction towards its corresponding location; and (G) for any apparent contradiction which cannot be so moved, reporting that the expression is unsatisfiable. 22. A computing device comprising: a non-transitory memory; and a processor; wherein the non-transitory memory comprises signals representing a plurality of computer-readable instructions; and wherein the processor is adapted to execute the plurality of computer-readable instructions to perform a method for solving a problem in NP, the method comprising: converting a problem definition into an expression, wherein the expression comprises a plurality of variables and at least one constraint; (B) selecting a plurality of assumed value predicates for the plurality of variables of the expression; (C) propagating implications of the assumed value predicates; (D) identifying any apparent contradictions of the implications of the assumed value predicates; (E) determining, for each identified contradiction, whether that contradiction can be moved towards a corresponding location where it will resolve as an implication; (F) for each apparent contradiction which can be so moved, moving that apparent contradiction towards its corresponding location; and (G) for any apparent contradiction which cannot be so moved, reporting that the expression is unsatisfiable.