16. A system for verifying folded source code, the system comprising: at least one memory device storing a reference model having a particular functionality and a set of previously generated source code expressions intended to implement the particular functionality of the reference model; wherein the reference model adheres to a first set of syntax and semantics and first rules of operator precedence defining a first order in which operations are performed in expressions, wherein the reference model includes a plurality of first expressions, each of the first expressions including at least one operator and at least one operand, a first expression of the plurality of first expressions including a first operator having a first operator precedence level and a first set of operands associated with the first operator, wherein commutativity and associativity allow various equivalent ordering and grouping of operators of the first operator precedence level within the first expression based on the first rules of operator precedence; wherein the set of previously generated source code expressions adheres to a second set of syntax and semantics and second rules of operator precedence defining a second order in which operations are performed in expressions, wherein the set of previously generated source code expressions includes a second folded expression including a second operator having a second operator precedence level and a second set of operands associated with the second operator, wherein commutativity and associativity allow various equivalent ordering and grouping of operators of the second operator precedence level within the second expression based on the second rules of operator precedence; a processing unit configured to match the second folded expression with the plurality of first expressions in part by matching the first operator of the first expression with the second operator of the second expression and verifying that the first set of operands is equivalent with the second set of operands even when the first set of operands is in a different order than the second set of operands based on commutativity or grouped in a different way based on associativity; and wherein the processing unit is further configured to determine whether the second folded expression is semantically equivalent to the plurality of first expressions based on the matching of the second folded expression with the plurality of first expressions, wherein the second folded expression need not be syntactically identical to the plurality of first expressions to be semantically equivalent.
25. The system of claim 16 , wherein the processing unit is further configured to convert the plurality of first expressions of the reference model into at least a first sum-of-product polynomial; wherein the processing unit is further configured to convert the second folded expression of the set of previously generated source code expressions into at least a second sum-of-products polynomial; and wherein the processing unit is further configured to match the at least a first sum-of-products polynomial with the at least a second sum-of-products polynomial to determine whether the first sum-of-products polynomial is equivalent to the second sum-of-products polynomial.