the present invention is based on a preliminary generation of identities in the technology basis . the identities minimize the depth of variables with critical timing . the generation of identities is automatic , so the timing optimization procedure is independent from the choice of a specific technology basis . fig1 is a flowchart illustrating the general procedure of the present invention . at step 100 , a preliminary set of identities for the given technology basis are generated . a resynthesis window is created at step 200 , and its logical equations are transformed for better applicability of identities . the logical equations are transformed through the identities at step 300 . at step 400 final resynthesis window area optimization is performed without degrading timing . an identities generation algorithm is used to generate identities in the technological basis . each identity diminishes the depth of a variable ( e . g ., x 1 ). in the process of timing optimization , this variable is identified by a subexpression of critical timing . while generation of identities of only one variable is considered critical , we have discovered numerous situations where an identity diminishes timing for critical and quasi - critical variables . the process 100 of generating preliminary identities for the technology basis is illustrated in the flow chart of fig2 . a subset m of most frequently used current design logic operations of the technology basis ( for example , not , or , and , nor , nand , xor , mux , etc .) is selected at step 110 . the number of inputs m of each operation is not more than some predetermined number , such as 4 . to obtain a practical number of identities , it is desirable to select not more than about 30 to 40 logic operations in subset m . at step 112 , a list of initial identities is created . each identity is a union of ( 1 ) the axioms of the logic operations in m and ( 2 ) the definitions of functions of the logic cells of the technology basis in terms of logic operations . the left parts of these identities are enumerated . there are two types of left parts , expressions with a depth 2 and expressions with depth 3 . at step 114 an enumeration is made of all expressions of depth 2 , having a form f 1 ( y 1 . . . y i − 1 f 2 ( x 1 . . . . x n ) y i + 1 . . . y m ), where f 1 , f 2 are from subset m . here , y 1 , . . . y m , x 1 , . . . , x n , are different variables . expressions are considered identical if they can be transformed to another by reordering operands of “ symmetrical ” operations f 1 and by renaming all of the variables except x 1 ( x 1 is considered as critical by timing ). during enumeration of the left parts of the identities , some of these left parts would be created as identities themselves , as described below . after completing enumeration of the left parts of depth 2 , enumeration of left parts that have depth 3 is performed at step 116 . here , the expressions take on the form f 1 ( z 1 . . . z i - 1 f 2 ( y 1 . . . y j − 1 f 3 ( x 1 . . . x n ) y j + 1 . . . y m ) z i + 1 . . . z k ). all expressions that have a subexpression a from depth 2 are excluded from this enumeration because an identity a = b has already been generated . for every left part t of the identity that appears during enumeration process , an attempt is made to generate a corresponding right part pursuant to steps 118 - 130 . at step 118 , constants 0 , 1 are substituted for variable x 1 in the left part expression t of the identity , creating results r 0 , r 1 . simple identities are applied for logical constants ( i . e ., 1νx = 1 ; 0νx = x , etc .). an expression r = x 1 · r 1 ν − x 1 · r 0 is created , where disjunction , conjunction and negation are elements of the basic set of operations m . at step 120 , expression r is optimized by a timing optimization procedure using identities that have double occurrences of the same variable in right part . application of this identity is equivalent to modification of factoring ( that is , regrouping of implicants , oriented to diminishing the critical variable depth ). the process of timing optimization for r assumes that timing of variable x 1 is greater than sum of delays of all operations in r , and that timings of other variables in r are equal to 0 . the simplest model of timing is used here so that each operation in m has a fixed delay . the result of transformations of the expression r is designated by h . maximal subexpressions p 1 , . . . , p n are selected at step 122 from expression h that do not have variable x 1 . arbitrary new variables y 1 , . . . , y n ( that is , variables not used in h ) are selected at step 124 and an auxiliary system of logical equations y 1 = p 1 , . . . , y n = p n in technology basis is created . more particularly , the logical equations are transformed to basis or , and and not . the right parts of equations are transformed to disjunctive normal form and minimized ( by an ordinary flattening procedure ). a factoring procedure is applied to system of equations . finally , a procedure of mapping - to - gates is applied to system of equations . it may be necessary to add additional new variables z 1 , . . . , z m during the factoring procedure . these new variables are designations for some subexpressions , b 1 , . . . b m , that have more than one occurrence in equations . the transformation of the auxiliary equations results in a new system of equations y 1 = q 1 , . . . , y n = q n , z 1 + b 1 , . . . , z m = b m . at step 126 , expression d is created by replacing subexpressions p 1 , . . . , p n in expression h with q 1 , . . . , q n . the result is an identity t = d . however , if m & gt ; 0 , the identity is supplemented , as indicated at step 128 , with a system of equations z 1 = b 1 , . . . , z m = b m , which are definitions of auxiliary variables z 1 , . . . , z in d . these identities ( where m & gt ; 0 ) can be considered “ identities with definitions ”. increments of timing and area for replacement of t to d are calculated at step 130 . for example , for the simplest timing model , every operation from m has fixed delay and area , variable x 1 has fixed “ large ” timing , and other variables have timing 0 . if the decrease of timing is not less than given parameter δ , and the increase of area is not more than given percent s , then the identity with definitions t = d is registered in list of resulting identities . otherwise the identity is missing . parameters δ , s are determined experimentally . in experiments , we chose δ as one - half of the mean delay of operations from m , and s as 40 %. ao1 ( x 1 x 2 x 3 x 4 )= not ( and ( or ( x 1 x 2 ) x 3 x 4 )) and ao2 ( x 1 x 2 x 3 x 4 )= not ( or ( and ( x 1 x 2 ) and ( x 3 x 4 ))). ao1 ( x 2 x 3 x 4 and ( x 1 x 5 ))= nand ( x 1 not ( ao1 ( x 2 x 3 x 4 x 5 ))), which is the usual identity for replacement of left part to right part . the second identity is ao2 ( or ( x 1 x 2 ) x 3 x 4 x 5 ) ao1 ( x 1 or ( x 3 x 6 )); x 6 = and ( x 4 x 5 ), which is an identity with a definition of auxiliary variable x 6 . step 200 . generation of resynthesis window and transformation of equations . fig3 is a flow chart of the process of step 200 in fig1 . a list c of all critical timing cells of the netlist is created by standard procedures . at step 210 binary trees are formed having levels of vertices . the vertices represent logical cells , and are arranged such that each vertex representing a cell inside the tree ( i . e ., at levels other than a bottom level of the tree ) has its output connected to another vertex representing another cell of the same tree . the bottom level vertices represent output cells . the tree is “ maximal ”, in the sense that no cell can be added to it . the tree is used to generate a window for resynthesis . at step 212 , a tree is selected containing an output cell v in list c . the tree containing output cell v gives a logical equation of the resynthesis window as y = f . if the maximal depth of variables with critical timing in f is not less than some parameter d , then the window is expanded . window expansion is performed at step 214 by identifying all trees that have inputs connected to output of cell v . the resynthesis window is expanded to include all identified trees . hence , all trees containing a cell connected to an output of cell v are included in the expanded tree . the resulting tree adds new logical equations z 1 = g 1 , . . . , z n = g n for resynthesis . variable y appears in all expressions g 1 , . . . , g n for the output of cell v . variable y is eliminated from the resynthesis window by substituting f for y in all expressions g 1 , . . . , g n and by deleting equation y = f . this transformation often increases the depth of variables with critical timing , and therefore creates more possibilities for application of identities generated above , although application of any such identity requires a depth of at least 2 , and preferably 3 . the process of window expansion and transformation continues until the depth of critical variables in all equations is less than d , and total complexity of the equations is less than some critical value . let y 1 = f 1 , . . . , y n = f n be the system of logical equations , in terms of technology basis operations , for the current resynthesis window . elaboration of these equations is performed as described in the flow chart of fig4 . all subexpressions g of expressions f i having critical timing and a depth not less than 2 , are selected . if a subexpression g has a depth of 2 or less , it is ignored . each subexpression g is presented in form f 1 ( . . . f 2 ( . . . f m ( a 1 . . . a p ) . . . ) . . . ), where f i + 1 are operands of operation f i with maximal timing , and m & lt ; 4 . an identity t with left part of the same form f 1 ( . . . f m ( . . . ) . . . 0 . . . ) is selected from the base of identities . variable x 1 of the selected identity t is identified with operand a j having a maximal timing . the total number of identities may appear to be very large . since the left parts of the identities have “ linear ” structure of operations , the identities can be organized into tree - like databases for a quick search . since the time required to perform the search is logarithmic of the number of identities , the quick search is possible for millions of such identities . when the identity t is found , the result g ′ of application of t to subexpression g is considered , and the decrement δ of timing for f i is computed . after all subexpressions g are considered , a variant of transformation g → g ′ is selected , which gives maximal diminishing of timing ( i . e ., minimal decrement δ , δ & lt ; 0 ). this transformation g → g ′ is realized , and the cycle is repeated . transformations are continued until δ is less than 0 . if an identify t defined some auxiliary variables , then the definitions of these variables are included in the list of equations . fig5 is a flow chart illustrating the process of step 400 in fig1 . at step 410 subexpressions t are found in equations y 1 = f 1 , . . . y n = f n of the resynthesis window that have more than one occurrence . new variables z are selected , and at step 412 all occurrences of t in equations are replaced with z . an equation z = t is added to system of equations . these transformations are necessary to remove duplications that appeared in the equations as a result of elimination of variables in step 200 . alternatively ( or supplementally ), duplication can be removed by selecting non - critical ( by timing ) subexpressions p 1 , . . . , p m of the equations and minimizing their complexity by standard area optimization cycles of flattening , factoring and mapping - to - gates . replacement of subexpressions p i by result r i of such cycle is permissible if it does not negatively impact the results of timing optimization . while the invention has been described as a process , in preferred embodiments the invention is carried out by a computer under the control of a computer readable program comprising computer readable code embedded in a computer readable medium . the code of the computer readable program causes the computer to carry out the processes herein described . the computer readable program may be part of a computer aided design program for carrying out the process to design integrated circuits having millions of cells . although the present invention has been described with reference to preferred embodiments , workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention .