DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 01/19/2026 has been entered.
Claims 1-4 and 7-8 and 10-20 are pending in this application. Claims 1, 10, 12-15 and 17-20 are currently amended; claims 2-4, 7-8, 11 and 16 are previously presented; claims 5-6 and 9 are canceled.
Claim Objections
Claim 20 is objected to under 37 C.F.R. 1.71(a) which requires “full, clear, concise, and exact terms” as to enable any person skilled in the art or science to which the invention or discovery appertains, or with which it is most nearly connected, to make and use the same. The following should be corrected.
A. In claim 20 line 58, “the infinitesimal number having a temporary unique tag” should read “the temporary infinitesimal number having the temporary unique tag” instead.
Claim Interpretation
The broadest reasonable interpretation of a method (or process) claim having contingent limitations requires only those steps that must be performed and does not include steps that are not required to be performed because the condition(s) precedent are not met. For example, assume a method claim requires step A if a first condition happens and step B if a second condition happens. If the claimed invention may be practiced without either the first or second condition happening, then neither step A or B is required by the broadest reasonable interpretation of the claim. If the claimed invention requires the first condition to occur, then the broadest reasonable interpretation of the claim requires step A. If the claimed invention requires both the first and second conditions to occur, then the broadest reasonable interpretation of the claim requires both steps A and B. See MPEP 2111.04 II for more information.
The term “higher-order” is interpreted as defined in paragraph [0107].
The term “eta expanding” is interpreted as defined in paragraph [0059].
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 17-18 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 17 recites “a fourth result” in lines 10-11 and “a fourth result” in line 12. It is unclear whether these are supposed to refer to the same fourth result or whether these are supposed to refer to different results which also creates confusion as to which fourth result is meant to be referred to in the subsequent recitations of “the fourth result” in line 14. For purposes of examination, these are interpreted as different results because they are determined using different functions. Claim 18 recites a similar limitation and in lines 10-11 and 13-14 and is rejected for the same reason.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-4 and 7-8 and 10 20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Under Step 1, claims 1-4, 7-8 and 10-18 recite a series of steps and, therefore, is a process. Claim 19 recites a system and, therefore, is a machine. Claim 20 recites a non-transitory computer-readable medium and, therefore, is an article of manufacture.
Under Step 2A prong 1, claim 1 recites
A method for automatic differentiation of a function defined by program code, the method comprising:
storing, in at least one memory, an automatic differentiation program having a derivative operator program construct that implements a mathematical derivative operator;
receiving, with at least one processor, first program code defining a first mathematical function, the first mathematical function being a higher-order function which takes a first argument as input;
generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code that defines a second mathematical function, the second mathematical function being a derivative of the first mathematical function, the generating the second program code including multiple executions of the derivative operator program construct, each execution of the derivative operator program construct being distinguished from one another using unique distinguishing features;
receiving, with the at least one processor, a value for the first argument; and
determining a result by executing the second program code with the at least one processor to evaluate the second mathematical function at the received value for the first argument,
wherein, for each respective execution of the derivative operator program construct, the generating the second program code comprises:
forming a first dual number with the first argument as primal, with one as tangent, and with an infinitesimal number having a unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct;
determining a first result by applying the first mathematical function with the first dual number as input; and
extracting a first tangent from the first result with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct, and
wherein, for each execution of the derivative operator program construct, the extracting the first tangent comprises:
in response to the first result defining a real number, determining the first tangent as zero;
in response to the first result defining a second dual number having only the infinitesimal number associated with the respective execution of the derivative operator program construct, determining the first tangent as a tangent of the second dual number with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct;
in response to the first result defining a third dual number having an infinitesimal number associated with a different execution of the derivative operator program construct, (i) extracting a second tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from a primal of the third dual number with respect to the infinitesimal number associated with the different execution of the derivative operator program construct, (ii) extracting a third tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from a tangent of the third dual number with respect to the infinitesimal number associated with the different execution of the derivative operator program construct, and (iii) determining the first tangent as a dual number formed with the second tangent as primal, with the third tangent as tangent, and with the infinitesimal number associated with the different execution of the derivative operator program construct; and
in response to the first result defining a third mathematical function which takes a second argument as input, (i) determining a second result by substituting, in the second argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a first temporary unique tag, (ii) determining a third result by applying the third mathematical function to the second result, (iii) extracting a fourth tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from the third result, and (iv) determining the first tangent by substituting, in the fourth tangent, each occurrence of the temporary infinitesimal number having the first temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct.
The above underlined limitations are related to calculating a derivative of a higher-order function which amounts to processing mathematical relationships/calculations and falls within the “Mathematical Concepts” grouping of abstract ideas. See at least paragraphs [0061-0062] including equations 19a-19z and paragraphs [0073-0074] including equations 25a-25w for the equations to determine the result expressed in words of the claim. Accordingly, the claim is directed to recite an abstract idea.
Under step 2A prong 2, the claim recites the following additional elements: storing, in at least one memory, an automatic differentiation program, receiving, with at least one processor, first program code, generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code, receiving, with the at least one processor, a value for the first argument, and executing the second program code with the at least one processor. However, the additional elements of “at least one memory” and “at least one processor” are recited at a high-level of generality (i.e., as a generic computer component for storing a program code; and as a generic computer component for executing program codes) such that they amount to no more than mere instructions using a generic computer component or merely as tools to implement the abstract idea. The additional elements of “generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code” and “executing the second program code with the at least one processor” are merely generally linking the use of a judicial exception to a particular technological environment or field of use where a second mathematical program code is generated by executing a first mathematical program code in a computer environment and where second program code defines the second mathematical function that is further executed to determine the result. The additional elements of “storing”, in at least one memory, an automatic differentiation program, “receiving”, with at least one processor, first program code, “receiving”, with the at least one processor, a value for the first argument are merely adding insignificant extra-solution activities. The additional elements do not, individually or in combination, integrate the exception into a practical application. Accordingly, the claim is not integrated into a practical application.
Under step 2B, claim 1 does not include additional elements that, individually or in combination, are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “at least one memory” and “at least one processor” are recited at a high-level of generality (i.e., as a generic computer component for storing a program code; and as a generic computer component for executing program codes) such that they amount to no more than mere instructions using a generic computer component or merely as tools to implement the abstract idea. The additional elements of “generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code” and “executing the second program code with the at least one processor” are merely generally linking the use of a judicial exception to a particular technological environment or field of use where a second mathematical program code is generated by executing a first mathematical program code in a computer environment and where second program code defines the second mathematical function that is further executed to determine the result. The additional elements of “storing”, in at least one memory, an automatic differentiation program, “receiving”, with at least one processor, first program code, “receiving”, with the at least one processor, a value for the first argument are merely adding insignificant extra-solution activities. See MPEP 2106.05(d)(II) which states that the courts have recognized computer functions such as “Receiving or transmitting data over a network” and “Storing and retrieving information in memory” as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. The claim does not recite additional elements that alone or in combination amount to an inventive concept. Accordingly, the claim does not amount to significantly more than the abstract idea.
Under step 2A prong 1, claims 2-4 and 7-8 and 10-18 recites the same abstract idea as claim 1 by reason of dependence. Further, claim 4 recites further details of the abstract idea of “comprising: using one of (i) forward mode automatic differentiation, (ii) reverse mode automatic differentiation, (iii) checkpointing based reverse mode automatic differentiation, and (iii) a hybrid mode automatic differentiation”; claim 7 recites further details of the abstract idea of “comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first dual number, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct”; claim 8 recites further details of the abstract idea of “as a result of the multiple executions of the derivative operator program construct in the eta expanding of the first mathematical function”; claim 10 recites further details of the abstract idea of “the substituting, in the second argument, and the substitute, in the fourth tangent, each comprising: determining a respective output by substituting, in a respective input, each occurrence of an infinitesimal number having a second unique tag with an infinitesimal number having a first unique tag, wherein, in response to the respective input defining a real number, the respective output is determined as being equal to the respective input, and wherein, in response to the respective input defining a fourth dual number having only infinitesimal numbers having the first unique tag, the respective output is determined by substituting, in the fourth dual number, each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag”; claim 11 recites further details of the abstract idea of “wherein, in response to the respective input defining a fifth dual number having infinitesimal numbers having a third unique tag, the respective output is determined by (i) determining a fourth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag, in a primal of the fifth dual number with respect to the infinitesimal numbers having the third unique tag, (ii) determining a fifth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag in a tangent of the fifth dual number with respect to the infinitesimal numbers having the third unique tag, and (iii) determining the respective output as a dual number formed with the fourth result as primal, with the fifth result as tangent, and with the infinitesimal number having the third unique tag”; claim 12 recites further details of the abstract idea of “wherein, in response to the respective input defining a fourth mathematical function which takes a third argument as input, (i) determining a sixth result by substituting each occurrence of the infinitesimal number having the second unique tag with the temporary infinitesimal number having the temporary unique tag in the third argument, (ii) determining a seventh result by applying the fourth mathematical function to the sixth result, (iii) determining an eighth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag in the seventh result, and (v) determining the respective output by substituting each occurrence of the temporary infinitesimal number having the temporary unique tag with the infinitesimal number having the second unique tag in the sixth result”; claim 13 recites further details of the abstract idea of “determining the second mathematical function as the first tangent”; claim 14 recites further details of the abstract idea of “wherein the first mathematical function is one whose range and domain are both functions, the first mathematical function taking the first argument and a second argument as inputs”; claim 15 recites further details of the abstract idea of “for each respective execution of the derivative operator program construct: forming a first bundle with the first argument and the second argument and with respect to an infinitesimal number having a unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct; determining a first result by applying the first mathematical function with the first bundle as input; and extracting a first tangent from the first result with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct”; claim 16 recites further details of the abstract idea of “comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first bundle, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct”; claim 17 recites further details of the abstract idea of “for each execution of the derivative operator program construct, the forming the first bundle comprising: in response to the first argument not defining a function and the second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct; and in response to the first argument defining a third mathematical function which takes a third argument as input and the second argument defining a fourth mathematical function which takes the third argument as input, (i) determining a second result by applying the third mathematical function with the third argument as input, (ii) determining a third result by applying the fourth mathematical function with the third argument as input, and (iii) determining the first bundle as a dual number formed with the second result as primal, with the third result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct”; and claim 18 recites further details of the abstract idea of “for each execution of the derivative operator program construct, the forming the first bundle comprising: in response to the first argument not defining a function and the second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct; and in response to the first argument defining a third mathematical function which takes a third argument as input and the second argument defining a fourth mathematical function which takes the third argument as input, (i) determining a second result by substituting, in the third argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a temporary unique tag, (ii) determining a third result by applying the third mathematical function with the third argument as input, (iii) determining a fourth result by applying the fourth mathematical function with the third argument as input, (iv) determining a second bundle as a dual number formed with the third result as primal, with the fourth result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct, and (v) determining the first bundle by substituting, in the second bundle, each occurrence of the infinitesimal number having a temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct” which falls within the “Mathematical Concepts” grouping of abstract ideas. In particular claims 4, 7-8 and 10-18 do not include additional elements that would require further analysis under step 2A prong 2 and step 2B. Accordingly, the claims are directed to recite an abstract idea.
Under step 2A prong 2, claim 2 recites the following additional elements: storing the result. Claim 3 recites the following additional elements: storing the second program code. However, the additional elements of “storing the result” in claim 2; and “storing the second program code” in claim 3 are merely adding insignificant extra-solution activities. The additional elements do not, individually or in combination, integrate the exception into a practical application. Accordingly, the claims are not integrated into a practical application.
Under step 2B, claims 2-3 do not include additional elements that, individually or in combination, are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “storing the result” in claim 2; and “storing the second program code” in claim 3 are merely adding insignificant extra-solution activities. See MPEP 2106.05(d)(II) which states that the courts have recognized computer functions such as “Receiving or transmitting data over a network” and “Storing and retrieving information in memory” as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. The claims do not recite additional elements that alone or in combination amount to an inventive concept. Accordingly, the claims do not amount to significantly more than the abstract idea.
Regarding claim 19, it is directed to a system and includes substantially the same limitations as the method of claim 1. All functions practiced by the system of claim 19 are performed by the method steps of claim 1. Claim 1 analysis applies equally to claim 19.
Under Step 2A prong 1, claim 20 recites
A non-transitory computer-readable medium for automatic differentiation of a function defined by program code, the non-transitory computer-readable medium storing program instructions including an automatic differentiation program having a derivative operator program construct that implements a mathematical derivative operator, the program instructions, when executed by at least one processor, cause the at least one processor to:
receive first program code defining a first mathematical function, the first mathematical function being a higher-order function which takes a first argument as input;
generate, based on the first program code, by executing the automatic differentiation program, second program code that defines a second mathematical function, the second mathematical function being a derivative of the first mathematical function, the generation of the second program code including multiple executions of the derivative operator program construct, each execution of the derivative operator program construct being distinguished from one another using unique distinguishing features;
receive a value for the first argument; and
determine a result by executing the second program code to evaluate the second mathematical function at the received value for the first argument,
wherein the first mathematical function is one whose range and domain are both functions, the first mathematical function taking the first argument and a second argument as inputs,
wherein, for each respective execution of the derivative operator program construct, the generating the second program code comprises:
forming a first bundle with the first argument and the second argument and with respect to an infinitesimal number having a unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct;
determining a first result by applying the first mathematical function with the first bundle as input; and
extracting a first tangent from the first result with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct, and
wherein for each execution of the derivative operator program construct, the forming the first bundle comprising:
in response to the first argument not defining a function and the second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct; and
in response to the first argument defining a third mathematical function which takes a third argument as input and the second argument defining a fourth mathematical function which takes the third argument as input, (i) determining a second result by substituting, in the third argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a temporary unique tag, (ii) determining a third result by applying the third mathematical function with the third argument as input,(iii) determining a fourth result by applying the fourth mathematical function with the third argument as input, (iv) determining a second bundle as a dual number formed with the third result as primal, with the fourth result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct, and (v) determining the first bundle by substituting, in the second bundle, each occurrence of the infinitesimal number having a temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct.
The above underlined limitations are related to calculating a derivative of a higher-order function which amounts to processing mathematical relationships/calculations and falls within the “Mathematical Concepts” grouping of abstract ideas. See at least paragraphs [0058-0062 and 0081-0095] including equations 17a-19z and 30a-34 for the equations to determine the result expressed in words of the claim. Accordingly, the claim is directed to recite an abstract idea.
Under step 2A prong 2, the claim recites the following additional elements: storing program instructions including an automatic differentiation program, the program instructions, when executed by at least one processor, cause the at least one processor to: receive first program code, generate, based on the first program code, by executing the automatic differentiation program, second program code, receive a value for the first argument, and executing the second program code. However, the additional elements of “at least one processor” is recited at a high-level of generality (i.e., as a generic computer component for executing program codes) such that it amounts to no more than mere instructions using a generic computer component or merely as a tool to implement the abstract idea. The additional elements of “generate, based on the first program code, by executing the automatic differentiation program, second program code” and “executing the second program code” are merely generally linking the use of a judicial exception to a particular technological environment or field of use where a second mathematical program code is generated by executing a first mathematical program code in a computer environment and where second program code defines the second mathematical function that is further executed to determine the result. The additional elements of “storing program instructions including an automatic differentiation program”, “receive first program code”, and “receive a value for the first argument” are merely adding insignificant extra-solution activities. The additional elements do not, individually or in combination, integrate the exception into a practical application. Accordingly, the claim is not integrated into a practical application.
Under step 2B, claim 20 does not include additional elements that, individually or in combination, are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “at least one processor” is recited at a high-level of generality (i.e., as a generic computer component for executing program codes) such that it amounts to no more than mere instructions using a generic computer component or merely as a tool to implement the abstract idea. The additional elements of “generate, based on the first program code, by executing the automatic differentiation program, second program code” and “executing the second program code” are merely generally linking the use of a judicial exception to a particular technological environment or field of use where a second mathematical program code is generated by executing a first mathematical program code in a computer environment and where second program code defines the second mathematical function that is further executed to determine the result. The additional elements of “storing program instructions including an automatic differentiation program”, “receive first program code”, and “receive a value for the first argument” are merely adding insignificant extra-solution activities. See MPEP 2106.05(d)(II) which states that the courts have recognized computer functions such as “Receiving or transmitting data over a network” and “Storing and retrieving information in memory” as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. The claim does not recite additional elements that alone or in combination amount to an inventive concept. Accordingly, the claim does not amount to significantly more than the abstract idea.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-4, 10-15 and 18 are rejected under 35 U.S.C. 102(a)(1) and (a)(2) as being anticipated by Siskind et al. (US 2009/0077543 A1), hereinafter Siskind.
Regarding claim 1, Siskind teaches a method for automatic differentiation of a function defined by program code, the method comprising:
storing, in at least one memory, an automatic differentiation program having a derivative operator program construct that implements a mathematical derivative operator (Siskind paragraphs [0024-0031, 0519]; claim 1; at least one memory – first and second memory; derivative operator program construct - at least one automatic differentiation (AD) construct; mathematical derivative operator – AD operator);
receiving, with at least one processor, first program code defining a first mathematical function, the first mathematical function being a higher-order function which takes a first argument as input (Siskind paragraphs [0024-0031, 0517, 0519] “a computing system, comprising a processor and a first memory in communication with the processor, includes in the first memory programming instructions executable by the processor to accept a function expressed as a program in a formal language of a formal system … Algorithm Differentiation (AD) is an established enterprise that seeks to take the derivatives of functions … treating AD operators as first-class higher-order functions that map first-class function objects to first-class function objects … Differentiation is inherently a higher-order process … The derivative operator is thus a higher-order function”; paragraphs [0328-0329] “A function optimizer can be written as a higher-order function, taking an objective function as its argument … The overloading approach exhibits another advantage. When implemented correctly, one can take derivatives of functions that in turn take derivatives of other functions … This involves computing higher-order derivatives. A properly implemented overloading approach can compute derivatives of arbitrary order … When implemented correctly, the transformation approach can also transform transformed code to compute higher-order derivatives”; claim 1; at least one processor – processor; first program code – program; first mathematical function – function; first argument – argument);
generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code that defines a second mathematical function, the second mathematical function being a derivative of the first mathematical function, generating the second program code including multiple executions of the derivative operator program construct, each execution of the derivative operator program construct being distinguished from one another using unique distinguishing features (Siskind paragraphs [0024-0031] “The automatic processing interprets an automatic differentiation (AD) operator that takes a first function as its input and provides a second function as its output, where the second function calculates the derivative of the first function. The first function includes a nested AD operation such that at least one of the following hold: the first function provides cascaded use of the AD operator, with or without intermediate operations on the resulting value; or the code for the first function invokes the AD operator”; paragraph [0139] “where t is a tag unique to each invocation of
D
”; [0434-0435] “In order for this mechanism to correctly handle nesting, we must distinguish between different perturbations introduced by different invocations of
D
… where
E
a
and
E
b
are introduced by the two distinct invocations of
D
. One way to do this is to create a hierarchy of dual number types, distinguished by a distinct e for each distinct invocation of
D
…
E
is unique to each live invocation of
D
”; second mathematical function - second function; unique distinguishing features – unique tag t or unique
E
; paragraph [0065] “Traditional forward-mode AD implements the above abstract interpretation either as a source-to-source transformation or by overloading the primitives u and b”; paragraph [0471] “Forward-Mode Automatic Differentiation, or forward AD, is a method for adapting a program that computes a function to yield one that computes its derivatives”; paragraph [0506] “Forward AD is typically formulated using very different machinery than that used above. The univariate first order case is usually formulated as a transformation of a program whose program points compute values f(x) of the program input x to one whose program points compute values (f(x), f'(x)”; paragraph [0024]);
receiving, with the at least one processor, a value for the first argument (Siskind paragraphs [0024-0031, 0321-0323] “computing the first derivative of f(x)=x4+ 2x3 at x=3”; value - x=3); and
determining a result by executing the second program code with the at least one processor to evaluate the second mathematical function at the received value for the first argument (Siskind paragraphs [0024-0031, 0321-0324]; “From this we can extract the derivative 162”; result – 162; paragraph [0471] “Forward-Mode Automatic Differentiation, or forward AD, is a method for adapting a program that computes a function to yield one that computes its derivatives”),
wherein, for each respective execution of the derivative operator program construct, the generating the second program code comprises:
forming a first dual number with the first argument as primal, with one as tangent, and with an infinitesimal number having a unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct (Siskind paragraph [0321-0324] “Such truncated Taylor expansions are dual numbers”; paragraphs [0432-0435]; infinitesimal number having a unique tag -
E
a
,
E
b
or
E
);
determining a first result by applying the first mathematical function with the first dual number as input (Siskind paragraph [0321-0324, 0432-0435]; and
extracting a first tangent from the first result with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct (Siskind paragraph [0321-0324, 0432-0435] “Forward AD computes the derivative of a univariate function f at a scalar point c by evaluating f (c+
E
) under a nonstandard interpretation replacing real numbers with dual numbers and extracting the coefficient of
E
in the result”), and
wherein, for each execution of the derivative operator program construct, the extracting the first tangent comprises:
in response to the first result defining a real number, determining the first tangent as zero (Siskind paragraph [0438] PERTURBATION
E
of x is defined as 0 when x is a real);
in response to the first result defining a second dual number having only the infinitesimal number associated with the respective execution of the derivative operator program construct, determining the first tangent as a tangent of the second dual number with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct (Siskind paragraphs [0323-0324, 0438] PERTURBATION
E
of (x + x’
E
) is defined as x’; this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information.);
in response to the first result defining a third dual number having an infinitesimal number associated with a different execution of the derivative operator program construct, (i) extracting a second tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from a primal of the third dual number with respect to the infinitesimal number associated with the different execution of the derivative operator program construct, (ii) extracting a third tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from a tangent of the third dual number with respect to the infinitesimal number associated with the different execution of the derivative operator program construct, and (iii) determining the first tangent as a dual number formed with the second tangent as primal, with the third tangent as tangent, and with the infinitesimal number associated with the different execution of the derivative operator program construct (this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information); and
in response to the first result defining a third mathematical function which takes a second argument as input, (i) determining a second result by substituting, in the second argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a first temporary unique tag, (ii) determining a third result by applying the third mathematical function to the second result, (iii) extracting a fourth tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from the third result, and (iv) determining the first tangent by substituting, in the fourth tangent, each occurrence of the temporary infinitesimal number having the first temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct (this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Regarding claim 2, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches storing, in the at least one memory, the result (Siskind paragraphs [0024-0031] “the processor to accept a function expressed as a program, automatically process the program, and store the output in a second memory”).
Regarding claim 3, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches storing, in the at least one memory, the second program code (Siskind paragraph [0024] “store the output of the processing in a second memory”).
Regarding claim 4, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches the generating the second program code comprising: generating the second program code using one of (i) forward mode automatic differentiation, (ii) reverse mode automatic differentiation, (iii) checkpointing based reverse mode automatic differentiation, and (iii) a hybrid mode automatic differentiation (Siskind paragraph [0079] “supports two novel primitive procedures … that implement forward- and reverse-mode AD respectively. These are first-class higher-order procedures that map procedures to transformed procedures that perform forward- and reverse-mode AD respectively”).
Regarding claim 10, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches the substituting, in the second argument, and the substitute, in the fourth tangent, each comprising: determining a respective output by substituting, in a respective input, each occurrence of an infinitesimal number having a second unique tag with an infinitesimal number having a first unique tag, wherein, in response to the respective input defining a real number, the respective output is determined as being equal to the respective input, and wherein, in response to the respective input defining a fourth dual number having only infinitesimal numbers having the first unique tag, the respective output is determined by substituting, in the fourth dual number, each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag (this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Regarding claim 11, Siskind teaches all the limitations of claim 10 as stated above. Further, Siskind teaches wherein, in response to the respective input defining a fifth dual number having infinitesimal numbers having a third unique tag, the respective output is determined by (i) determining a fourth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag, in a primal of the fifth dual number with respect to the infinitesimal numbers having the third unique tag, (ii) determining a fifth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag in a tangent of the fifth dual number with respect to the infinitesimal numbers having the third unique tag, and (iii) determining the respective output as a dual number formed with the fourth result as primal, with the fifth result as tangent, and with the infinitesimal numbers having the third unique tag (this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Regarding claim 12, Siskind teaches all the limitations of claim 10 as stated above. Further, Siskind teaches wherein, in response to the respective input defining a fourth mathematical function which takes a third argument as input, (i) determining a sixth result by substituting each occurrence of the infinitesimal number having the second unique tag with the temporary infinitesimal number having the first temporary unique tag in the third argument, (ii) determining a seventh result by applying the fourth mathematical function to the sixth result, (iii) determining an eighth result by substituting each occurrence of the infinitesimal number having the second unique tag with the infinitesimal number having the first unique tag in the seventh result, and (v) determining the respective output by substituting each occurrence of the temporary infinitesimal number having the first temporary unique tag with the infinitesimal number having the second unique tag in the sixth result (this limitation is a contingent limitation that is not required by the claim if the first result defines a real number. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Regarding claim 13, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches the generating the second program code comprising:
determining the second mathematical function as the first tangent (Siskind paragraphs [0315, 0322-0327, 0333, 0372]).
Regarding claim 14, Siskind teaches all the limitations of claim 1 as stated above. Further, Siskind teaches wherein the first mathematical function is one whose range and domain are both functions, the first mathematical function taking the first argument and a fourth argument as inputs (Siskind paragraphs [0029-0031, 0213, 0218, 0227]).
Regarding claim 15, Siskind teaches all the limitations of claim 14 as stated above. Further, Siskind teaches for each respective execution of the derivative operator program construct, the generating the second program code comprising:
forming a first bundle with the first argument and the fourth argument and with respect to the infinitesimal number having the unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct (Siskind paragraph [0321-0324] “implementations of forward AD typically represent dual numbers x+
x
→
E
as tangent-bundle pairs (x,
x
→
); paragraphs [0432-0435] “implementations of forward-mode AD typically represent dual numbers x+x'E as tangent-bundle pairs x, x'”);
determining the first result by applying the first mathematical function with the first bundle as input (Siskind paragraph [0321-0324, 0432-0435] “Forward AD computes the derivative of a univariate function f at a scalar point c by evaluating f (c+
E
) under a nonstandard interpretation replacing real numbers with dual numbers and extracting the coefficient of
E
in the result”); and
extracting the first tangent from the first result with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct (Siskind paragraph [0321-0324, 0432-0435] “Forward AD computes the derivative of a univariate function f at a scalar point c by evaluating f (c+
E
) under a nonstandard interpretation replacing real numbers with dual numbers and extracting the coefficient of
E
in the result”; first tangent - coefficient of
E
).
Regarding claim 18, Siskind teaches all the limitations of claim 15 as stated above. Further, Siskind teaches for each execution of the derivative operator program construct, the forming the first bundle comprising:
in response to the first argument not defining a function and the fourth second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the fourth second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct (this limitation is a contingent limitation that is not required by the claim if the first argument defines a function and the fourth argument does not define a function and/or the first argument does not define a function and the fourth argument defines a function. See claim interpretation section above. See also MPEP 2111.04 II for more information); and
in response to the first argument defining a fifth third mathematical function which takes a fifth third argument as input and the fourth second argument defining a sixth fourth mathematical function which takes the fifth third argument as input, (i) determining a fourth second result by substituting, in the fifth third argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a second temporary unique tag, (ii) determining a fourth third result by applying the fifth third mathematical function with the fifth third argument as input, (iii) determining a fifth fourth result by applying the sixth fourth mathematical function with the fifth third argument as input, (iv) determining a second bundle as a dual number formed with the fourth third result as primal, with the fifth fourth result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct, and (v) determining the first bundle by substituting, in the second bundle, each occurrence of the temporary infinitesimal number having the second temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct (this limitation is a contingent limitation that is not required by the claim if the first argument defines a function and the fourth argument does not define a function and/or the first argument does not define a function and the fourth argument defines a function. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 7-8 and 16-17 are rejected under 35 U.S.C. 103 as being unpatentable over Siskind in view of Manzyuk et al. (NPL – “Perturbation Confusion in Forward Automatic Differentiation of Higher-Order Functions”), hereinafter Manzyuk.
Regarding claim 7, Siskind teaches all the limitations of claim 1 as stated above.
Siskind does not explicitly teach the generating the second program code comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first dual number, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct.
However, on the same field of endeavor, Manzyuk discloses determining a second mathematical function by eta expanding a first mathematical function until all of multiple executions of a derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to forming of a first dual number, determining of first result, and extracting of a first tangent, for each of the multiple executions of the derivative operator program construct (Manzyuk section 7).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention, to modify Siskind using Manzyuk and use the eta expansion method for determining the second mathematical function because the eta expansion method avoids a bug related to implementation of automatic differentiation (Manzyuk sections 5-7).
Therefore, the combination of Siskind as modified in view of Manzyuk teaches the generating the second program code comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first dual number, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct.
Regarding claim 8, Siskind as modified in view of Manzyuk teaches all the limitations of claim 7 as stated above. Further, Siskind as modified in view of Manzyuk teaches the generating the second program code comprising: generating the second program code as a result of the multiple executions of the derivative operator program construct in the eta expanding of the first mathematical function (Manzyuk section 7 and Figs. 1-3).
Regarding claim 16, Siskind teaches all the limitations of claim 15 as stated above.
Siskind does not explicitly teach the generating the second program code comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first bundle, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct.
However, on the same field of endeavor, Manzyuk discloses determining a second mathematical function by eta expanding the first mathematical function until all of multiple executions of a derivative operator program construct will result in non-function-containing results (Manzyuk section 7).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention, to modify Siskind using Manzyuk and use the eta expansion method for determining the second mathematical function and perform the eta expansion before forming the first bundle, determining the first result, and extracting the first tangent, for each of the multiple executions of the derivative operator program construct because the eta expansion method avoids a bug related to implementation of automatic differentiation (Manzyuk sections 5-7).
Therefore, the combination of Siskind as modified in view of Manzyuk teaches the generating the second program code comprising: eta expanding the first mathematical function until all of the multiple executions of the derivative operator program construct will result in non-function-containing results, wherein the eta expanding is performed prior to the forming of the first bundle, the determining of the first result, and the extracting of the first tangent, for each of the multiple executions of the derivative operator program construct.
Regarding claim 17, Siskind as modified in view of Manzyuk teaches all the limitations of claim 16 as stated above. Further, Siskind as modified in view of Manzyuk teaches for each execution of the derivative operator program construct, the forming the first bundle comprising:
in response to the first argument not defining a function and the second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct (Manzyuk sections 3 and 7. The motivation to combine is the same as claim 16. Alternatively, this limitation is a contingent limitation that is not required by the claim if the first argument defines a function and the fourth argument does not define a function and/or the first argument does not define a function and the fourth argument defines a function. See claim interpretation section above. See also MPEP 2111.04 II for more information); and
in response to the first argument defining a third mathematical function which takes a third argument as input and the second argument defining a fourth mathematical function which takes the third argument as input, (i) determining a second result by applying the third mathematical function with the third argument as input, (ii) determining a third result by applying the fourth mathematical function with the third argument as input, and (iii) determining the first bundle as a dual number formed with the second result as primal, with the third result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct (Manzyuk sections 3 and 7. The motivation to combine is the same as claim 16. Alternatively, this limitation is a contingent limitation that is not required by the claim if the first argument defines a function and the fourth argument does not define a function and/or the first argument does not define a function and the fourth argument defines a function. See claim interpretation section above. See also MPEP 2111.04 II for more information).
Allowable Subject Matter
Claim 19-20 would be allowable if rewritten to overcome the 35 U.S.C. 101 rejection discussed above.
The following is a statement of reasons for the indication of allowable subject matter:
None of the prior art references cited explicitly teach or suggest, in combination with other limitations of the claims, for each execution of the derivative operator program construct, the extracting the first tangent comprising: in response to the first result defining a third mathematical function which takes a second argument as input, (i) determining a second result by substituting, in the second argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a temporary unique tag, (ii) determining a third result by applying the third mathematical function to the second result, (iii) extracting a fourth tangent with respect to the infinitesimal number associated with the respective execution of the derivative operator program construct from the third result, and (iv) determining the first tangent by substituting, in the fourth tangent, each occurrence of the temporary infinitesimal number having the temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct as recited in claim 19; and for each execution of the derivative operator program construct, the forming the first bundle comprising: in response to the first argument not defining a function and the second argument not defining a function, determining the first bundle as a dual number formed with the first argument as primal, with the second argument as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct; and in response to the first argument defining a third mathematical function which takes a third argument as input and the second argument defining a fourth mathematical function which takes the third argument as input, (i) determining a second result by substituting, in the third argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a temporary unique tag, (ii) determining a third result by applying the third mathematical function with the third argument as input, (iii) determining a fourth result by applying the fourth mathematical function with the third argument as input, (iv) determining a second bundle as a dual number formed with the third result as primal, with the fourth result as tangent, and with the infinitesimal number associated with the respective execution of the derivative operator program construct, and (v) determining the first bundle by substituting, in the second bundle, each occurrence of the infinitesimal number having a temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct as recited in claim 20.
Response to Arguments
In view of amendments made and Applicant’s arguments, the objection to the claims has been withdrawn. However, the amendments made raises new objection to the claims as discussed above.
Applicant's arguments filed 01/19/2026, see remarks page 21-28 with respect to the 35 U.S.C. 101 rejection of claims 1-4, 7-8 and 10-20 have been fully considered but they are not persuasive.
Applicant argues the following:
A. Under step 2A prong One, the limitations of "each execution of the derivative operator program construct being distinguished from one another using unique distinguishing features," "an infinitesimal number having a unique tag that uniquely associates the infinitesimal number with the respective execution of the derivative operator program construct" are related to the process for distinguishing between executions using unique distinguishing features (i.e., unique tags) and is not a mathematical concept. Instead, these limitations define a computer-implemented process for using unique tags (e.g., labels) to distinguish between data values associated with different executions of a program construct in a computer program.
Response: Examiner respectfully disagrees. There is mathematical relationship between the unique tags and the data values associated with the different executions of the derivative operator program construct to distinguish how the first tangent is to be calculated from the first result as evidenced by the different cases (in response to clauses) recited in the claims. Furthermore, multiple executions of a derivative operator program construct is still multiple executions of the mathematical concepts grouping of abstract ideas.
B. Under step 2A prong One, the limitations of "substituting, in the second argument, each occurrence of the infinitesimal number associated with the respective execution of the derivative operator program construct with a temporary infinitesimal number having a first temporary unique tag' and "substituting, in the fourth tangent, each occurrence of the temporary infinitesimal number having the first temporary unique tag with the infinitesimal number associated with the respective execution of the derivative operator program construct" define a process for temporarily substituting data values for other data values in the execution of a program construct. Particularly, the concept of temporarily substituting data values is not a mathematical relationship, a mathematical formula or equation, or a mathematical calculation.
Response: Examiner respectfully disagrees. As discussed above, there is mathematical relationship between the unique tags and the data values associated with the different executions of the derivative operator program construct to distinguish how the first tangent is to be calculated from the first result as evidenced by the different cases (in response to clauses) recited in the claim. Therefore, there is also a mathematical relationship between the substitution of unique tags (use of different data values) such that the data values associated with the unique tags are used to calculate the result (first tangent).
C. Under step 2A prong One, the limitations of "in response to the first result defining a real number," "in response to the first result defining a second dual number having only the infinitesimal number associated with the respective execution of the derivative operator program construct," "in response to the first result defining a third dual number having an infinitesimal number associated with a different execution of the derivative operator program construct," and "in response to the first result defining a third mathematical function which takes a second argument as input" define the if-then logic of a program construct for handling a variety of different data types that require different steps to process accurately. Particularly, the if-then logic of a program construct is not a mathematical relationship, a mathematical formula or equation, or a mathematical calculation.
Response: Examiner respectfully disagrees. The different “in response to” clauses are defining how the first tangent is to be calculated based on the first result which is a mathematical relationship between the first tangent and the first result as evidenced by the mathematical calculations that are performed in the subsequent limitations of the “in response to” clauses in the claims.
D. Under step 2A prong Two, the limitations of "the generating the second program code including multiple executions […], each execution […] being distinguished from one another using unique distinguishing features" and "substituting […]each occurrence of the […] associated with the respective execution of the […] with a temporary […] having a temporary unique tag" are central to providing an improvement in the technical field of automatic differentiation (AD) and cited paragraphs [0007 and 0114] of the specification. Additionally, claimed invention enables the automatic differentiation program to be completely general and be applied in an unrestricted fashion to correctly compute the derivative of all programs that compute differentiable mathematical functions including functions whose domain and/or ranges include the entire space of data types supported by programming languages, including not only aggregates but also functions cited paragraph [0057] of the specification and the particular if-then logic for handling a variety of different data types that require different steps to process accurately. Further, Applicant also cited Enfish.
Response: Examiner respectfully disagrees. As discussed above, these limitations are part of the abstract idea. See at least equations 19a-19z which includes multiple executions of the derivative operator program construct
D
which uses unique tags in equations 19g and 19j as disclosed in paragraph [0063]. Therefore, any alleged improvement with respect to each execution of the derivative operator program construct being distinguished from one another using unique distinguishing features is an improvement in the abstract idea, i.e. to calculate the correct result as disclosed in paragraphs [0036 and 0114] and not an improvement to technology. See MPEP 2106.05(a) II: “However, it is important to keep in mind that an improvement in the abstract idea itself (e.g. a recited fundamental economic concept) is not an improvement in technology.” Further, the step of “generating, based on the first program code by executing the automatic differentiation program with the at least one processor, second program code” is merely generally linking the use of a judicial exception to a particular technological environment or field of use where a second mathematical program code is generated by executing a first mathematical program code in a computer environment. Further, the second program code contains further abstract idea (i.e. the second program code defines a second mathematical function, the second mathematical function being a derivative of the first mathematical function) as recited in the claim that is additionally executed to determine the result. Further, the details of the generation of the program code includes further mathematical concepts as recited in the subsequent limitations of the claim. Furthermore, the alleged improvement of being able compute differentiable mathematical functions including functions whose domain and/or ranges include the entire space of data types supported by programming languages is also an improvement in the abstract idea and not an improvement to technology. Being able to compute more mathematical functions is still computing mathematical functions.
E. Under step 2B, the limitations of “"substituting […] each occurrence of […] associated with the respective execution of the […] with a temporary […] having a first temporary unique tag" and "substituting […] each occurrence of the temporary […] having the first temporary unique tag with […] associated with the respective execution […]" are not well-understood, routine, conventional limitations because they are not disclosed in the prior art.
Response: Examiner respectfully disagrees. See MPEP 2106.05 I: “the "‘novelty’ of any element or steps in a process, or even of the process itself, is of no relevance in determining whether the subject matter of a claim falls within the § 101 categories of possibly patentable subject matter."”
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Carlo Waje whose telephone number is (571)272-5767. The examiner can normally be reached 9:00-6:00 M-F.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, James Trujillo can be reached on (571) 272-3677. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/Carlo Waje/Examiner, Art Unit 2182 (571)272-5767